TTK_END_LAYOUT int TileGtk_Init_TreeView(Tcl_Interp *interp, TileGtk_WidgetCache **wc, Ttk_Theme themePtr) { /* * Register elements: */ Ttk_RegisterElement(interp, themePtr, "Treeview.field", &TreeViewFieldElementSpec, (void *) wc[0]); //Ttk_RegisterElement(interp, themePtr, "Treeview.client", // &TreeViewClientElementSpec, (void *) wc[0]); Ttk_RegisterElement(interp, themePtr, "Treeheading.border", &TreeHeadingBorderElementSpec, (void *) wc[0]); /* * Register layouts: */ Ttk_RegisterLayout(themePtr, ITEM_LAYOUT, ItemLayout); Ttk_RegisterLayout(themePtr, CELL_LAYOUT, CellLayout); Ttk_RegisterLayout(themePtr, HEADING_LAYOUT, HeadingLayout); Ttk_RegisterLayout(themePtr, ROW_LAYOUT, RowLayout); return TCL_OK; }; /* TileGtk_Init_TreeView */
TTK_END_LAYOUT /* * Initialization. */ MODULE_SCOPE void TtkScale_Init(Tcl_Interp *interp) { Ttk_Theme theme = Ttk_GetDefaultTheme(interp); Ttk_RegisterLayout(theme, "Vertical.TScale", VerticalScaleLayout); Ttk_RegisterLayout(theme, "Horizontal.TScale", HorizontalScaleLayout); RegisterWidget(interp, "ttk::scale", &ScaleWidgetSpec); }
TTK_END_LAYOUT /* +++ Initialization: */ MODULE_SCOPE void TtkSeparator_Init(Tcl_Interp *interp) { Ttk_Theme theme = Ttk_GetDefaultTheme(interp); Ttk_RegisterLayout(theme, "TSeparator", SeparatorLayout); Ttk_RegisterLayout(theme, "TSizegrip", SizegripLayout); RegisterWidget(interp, "ttk::separator", &SeparatorWidgetSpec); RegisterWidget(interp, "ttk::sizegrip", &SizegripWidgetSpec); }
TTK_END_LAYOUT /* ====================================================================== * +++ Initialization. */ MODULE_SCOPE void TtkFrame_Init(Tcl_Interp *interp) { Ttk_Theme theme = Ttk_GetDefaultTheme(interp); Ttk_RegisterLayout(theme, "TFrame", FrameLayout); Ttk_RegisterLayout(theme, "TLabelframe", LabelframeLayout); Ttk_RegisterLayout(theme, "Label", LabelSublayout); RegisterWidget(interp, "ttk::frame", &FrameWidgetSpec); RegisterWidget(interp, "ttk::labelframe", &LabelframeWidgetSpec); }
TTK_END_LAYOUT /*------------------------------------------------------------------------ * +++ Registration routine. */ MODULE_SCOPE void TtkPanedwindow_Init(Tcl_Interp *interp) { Ttk_Theme themePtr = Ttk_GetDefaultTheme(interp); RegisterWidget(interp, "ttk::panedwindow", &PanedWidgetSpec); Ttk_RegisterElement(interp, themePtr, "hsash", &SashElementSpec, 0); Ttk_RegisterElement(interp, themePtr, "vsash", &SashElementSpec, 0); Ttk_RegisterLayout(themePtr, "TPanedwindow", PanedLayout); Ttk_RegisterLayout(themePtr, "Horizontal.Sash", HorizontalSashLayout); Ttk_RegisterLayout(themePtr, "Vertical.Sash", VerticalSashLayout); }
TTK_END_LAYOUT int TileQt_Init_Paned(Tcl_Interp *interp, TileQt_WidgetCache **wc, Ttk_Theme themePtr) { /* * Register elements: */ Ttk_RegisterElement(interp, themePtr, "hgrip", &PanedSashGripElementSpec, (void *) wc[0]); Ttk_RegisterElement(interp, themePtr, "vgrip", &PanedSashGripElementSpec, (void *) wc[1]); /* * Register layouts: */ Ttk_RegisterLayout(themePtr, "Horizontal.Sash", HorizontalSashLayout); Ttk_RegisterLayout(themePtr, "Vertical.Sash", VerticalSashLayout); return TCL_OK; }; /* TileQt_Init_Paned */
TTK_END_LAYOUT /*------------------------------------------------------------------------ * +++ Initialization. */ MODULE_SCOPE void TtkButton_Init(Tcl_Interp *interp) { Ttk_Theme theme = Ttk_GetDefaultTheme(interp); Ttk_RegisterLayout(theme, "TLabel", LabelLayout); Ttk_RegisterLayout(theme, "TButton", ButtonLayout); Ttk_RegisterLayout(theme, "TCheckbutton", CheckbuttonLayout); Ttk_RegisterLayout(theme, "TRadiobutton", RadiobuttonLayout); Ttk_RegisterLayout(theme, "TMenubutton", MenubuttonLayout); RegisterWidget(interp, "ttk::label", &LabelWidgetSpec); RegisterWidget(interp, "ttk::button", &ButtonWidgetSpec); RegisterWidget(interp, "ttk::checkbutton", &CheckbuttonWidgetSpec); RegisterWidget(interp, "ttk::radiobutton", &RadiobuttonWidgetSpec); RegisterWidget(interp, "ttk::menubutton", &MenubuttonWidgetSpec); }
TTK_END_LAYOUT int TileGtk_Init_SizeGrip(Tcl_Interp *interp, TileGtk_WidgetCache **wc, Ttk_Theme themePtr) { /* * Register elements: */ Ttk_RegisterElement(interp, themePtr, "sizegrip", &SizeGripElementSpec, (void *) wc[0]); /* * Register layouts: */ Ttk_RegisterLayout(themePtr, "TSizegrip", SizegripLayout); return TCL_OK; }; /* TileGtk_Init_SizeGrip */
TTK_END_LAYOUT /* ---------------------------------------------------------------------- * * Widget initialization. * * This file defines a new element and a new widget. We need to register * the element with the themes that will need it. In this case we will * register with the default theme that is the root of the theme inheritance * tree. This means all themes will find this element. * We then need to register the widget class style. This is the layout * specification. If a different theme requires an alternative layout, we * could register that here. For instance, in some themes the scrollbars have * one uparrow, in other themes there are two uparrow elements. * Finally we register the widget itself. This step creates a tcl command so * that we can actually create an instance of this class. The widget is * linked to a particular style by the widget class name. This is important * to realise as the programmer may change the classname when creating a * new instance. If this is done, a new layout will need to be created (which * can be done at script level). Some widgets may require particular elements * to be present but we try to avoid this where possible. In this widget's C * code, no reference is made to any particular elements. The programmer is * free to specify a new style using completely different elements. */ /* public */ MODULE_SCOPE int TtkSquareWidget_Init(Tcl_Interp *interp) { Ttk_Theme theme = Ttk_GetDefaultTheme(interp); /* register the new elements for this theme engine */ Ttk_RegisterElement(interp, theme, "square", &SquareElementSpec, NULL); /* register the layout for this theme */ Ttk_RegisterLayout(theme, "TSquare", SquareLayout); /* register the widget */ RegisterWidget(interp, "ttk::square", &SquareWidgetSpec); return TCL_OK; }