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); }
void InitExCtrl(lua_State* L) { CExctrlWrappedWnd::Register(); RegisterWidget(new ListBoxType); //Scintilla控件 HMODULE hmod = LoadLibrary("SciLexer.dll"); if(hmod) RegisterWidget(new ScintillaType); RegisterWidget(new IEWebBrowserType); RegisterWidget(new FlashCtrlType); lua_getglobal(L, "require"); lua_pushstring(L, "exctrl"); lua_pcall(L, 1, -1, 0); }
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); }
WidgetFactory::WidgetFactory( gubi::IRenderSystem* pRenderSystem ) { m_pRenderSystem = pRenderSystem; for (unsigned int i = 0; i < (sizeof(g_vStaticWidget) / sizeof(_static_widget)); ++i) { RegisterWidget(g_vStaticWidget[i].eWidgetId, g_vStaticWidget[i].pConfig, g_vStaticWidget[i].pCreator); } }
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 /*------------------------------------------------------------------------ * +++ 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 /* ---------------------------------------------------------------------- * * 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; }