static void ButtonBorderElementSize( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { ButtonBorderElement *bd = elementRecord; int relief = TK_RELIEF_RAISED; int defaultState = TTK_BUTTON_DEFAULT_DISABLED; short int cx, cy; Tk_GetReliefFromObj(NULL, bd->reliefObj, &relief); Ttk_GetButtonDefaultStateFromObj(NULL, bd->defaultStateObj, &defaultState); cx = GetSystemMetrics(SM_CXEDGE); cy = GetSystemMetrics(SM_CYEDGE); /* Space for default indicator: */ if (defaultState != TTK_BUTTON_DEFAULT_DISABLED) { ++cx; ++cy; } /* Space for focus ring: */ cx += 2; cy += 2; *paddingPtr = Ttk_MakePadding(cx,cy,cx,cy); }
static void ScrollbarUpArrowElementGeometry( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { TILEGTK_WIDGET_CACHE_DEFINITION; gint stepper_size = 0, slider_width = 0; GtkWidget *widget = TileGtk_GetScrollBar(wc); int xt = 0, yt = 0, trough_border = 0; TILEGTK_ENSURE_GTK_STYLE_ENGINE_ACTIVE; TILEGTK_ENSURE_WIDGET_OK; TileGtk_gtk_widget_style_get(widget, "stepper-size", &stepper_size, "slider-width", &slider_width, NULL); if (wc->orientation == TTK_ORIENT_HORIZONTAL) { *widthPtr = stepper_size; *heightPtr = slider_width; } else { *widthPtr = slider_width; *heightPtr = stepper_size; } xt = widget->style->xthickness; yt = widget->style->ythickness; *paddingPtr = Ttk_MakePadding(xt + trough_border, yt + trough_border, xt + trough_border, yt + trough_border); }
/* * Notebook panes: */ static void PaneElementSize( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { /* Padding determined by trial-and-error */ *paddingPtr = Ttk_MakePadding(2, 8, 2, 2); }
static void TabElementSize( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { *heightPtr = GetThemeMetric(kThemeMetricLargeTabHeight, heightPtr); *paddingPtr = Ttk_MakePadding(0, 0, 0, 2); }
static void SizeGripElementGeometry( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { TILEGTK_WIDGET_CACHE_DEFINITION; TILEGTK_ENSURE_GTK_STYLE_ENGINE_ACTIVE; GtkWidget *widget = TileGtk_GetStatusBar(wc); *widthPtr = 18; *heightPtr = 18; TILEGTK_ENSURE_WIDGET_OK; *paddingPtr = Ttk_MakePadding(0, 0, widget->style->xthickness, widget->style->ythickness); }
static void LabelframeStyleOptions(Labelframe *lf, LabelframeStyle *style) { Ttk_Layout layout = lf->core.layout; Tcl_Obj *objPtr; style->borderWidth = DEFAULT_BORDERWIDTH; style->padding = Ttk_UniformPadding(0); style->labelAnchor = TTK_PACK_TOP | TTK_STICK_W; style->labelOutside = 0; if ((objPtr = Ttk_QueryOption(layout, "-borderwidth", 0)) != NULL) { Tk_GetPixelsFromObj(NULL, lf->core.tkwin, objPtr, &style->borderWidth); } if ((objPtr = Ttk_QueryOption(layout, "-padding", 0)) != NULL) { Ttk_GetPaddingFromObj(NULL, lf->core.tkwin, objPtr, &style->padding); } if ((objPtr = Ttk_QueryOption(layout,"-labelanchor", 0)) != NULL) { TtkGetLabelAnchorFromObj(NULL, objPtr, &style->labelAnchor); } if ((objPtr = Ttk_QueryOption(layout,"-labelmargins", 0)) != NULL) { Ttk_GetBorderFromObj(NULL, objPtr, &style->labelMargins); } else { if (style->labelAnchor & (TTK_PACK_TOP|TTK_PACK_BOTTOM)) { style->labelMargins = Ttk_MakePadding(DEFAULT_LABELINSET,0,DEFAULT_LABELINSET,0); } else { style->labelMargins = Ttk_MakePadding(0,DEFAULT_LABELINSET,0,DEFAULT_LABELINSET); } } if ((objPtr = Ttk_QueryOption(layout,"-labeloutside", 0)) != NULL) { Tcl_GetBooleanFromObj(NULL, objPtr, &style->labelOutside); } return; }
static void NotebookClientElementGeometry( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { if (qApp == NULL) NULL_Q_APP; NULL_PROXY_WIDGET(TileQt_QTabWidget_Widget); int tabBarBaseHeight = wc->TileQt_Style->pixelMetric(QStyle::PM_TabBarBaseHeight, #ifdef TILEQT_QT_VERSION_4 0, #endif /* TILEQT_QT_VERSION_4 */ wc->TileQt_QTabWidget_Widget); *paddingPtr = Ttk_MakePadding(NotebookClientUniformPadding, NotebookClientUniformPadding + tabBarBaseHeight, NotebookClientUniformPadding, NotebookClientUniformPadding); }
static void ScrollbarTroughElementGeometry( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { TILEGTK_WIDGET_CACHE_DEFINITION; gint trough_border = 0; int xt = 0, yt = 0; GtkWidget *widget = TileGtk_GetScrollBar(wc); TILEGTK_ENSURE_GTK_STYLE_ENGINE_ACTIVE; TILEGTK_ENSURE_WIDGET_OK; TileGtk_gtk_widget_style_get(widget, "trough-border", &trough_border, NULL); // xt = widget->style->xthickness; // yt = widget->style->ythickness; *paddingPtr = Ttk_MakePadding(xt + trough_border, yt + trough_border, xt + trough_border, yt + trough_border); }
static void NotebookTabElementGeometry( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { if (qApp == NULL) NULL_Q_APP; NULL_PROXY_WIDGET(TileQt_QTabBar_Widget); Tcl_MutexLock(&tileqtMutex); #ifdef TILEQT_QT_VERSION_4 QStyleOptionTab option; option.initFrom(wc->TileQt_QTabBar_Widget); #endif /* TILEQT_QT_VERSION_4 */ int PM_TabBarTabVSpace = PM(PM_TabBarTabVSpace), PM_TabBarTabHSpace = PM(PM_TabBarTabHSpace); Tcl_MutexUnlock(&tileqtMutex); *paddingPtr = Ttk_MakePadding( PM_TabBarTabHSpace/2, #ifdef TILEQT_QT_VERSION_4 PM_TabBarTabVSpace, PM_TabBarTabHSpace/2, 0 #endif /* TILEQT_QT_VERSION_4 */ ); }
static void TabElementDraw( void *clientData, void *elementRecord, Tk_Window tkwin, Drawable d, Ttk_Box b, Ttk_State state) { CGRect bounds = BoxToRect(d, b); HIThemeTabDrawInfo info = { .version = 1, .style = Ttk_StateTableLookup(TabStyleTable, state), .direction = kThemeTabNorth, .size = kHIThemeTabSizeNormal, .adornment = Ttk_StateTableLookup(TabAdornmentTable, state), .kind = kHIThemeTabKindNormal, .position = Ttk_StateTableLookup(TabPositionTable, state), }; BEGIN_DRAWING(d) ChkErr(HIThemeDrawTab, &bounds, &info, dc.context, HIOrientation, NULL); END_DRAWING } static Ttk_ElementSpec TabElementSpec = { TK_STYLE_VERSION_2, sizeof(NullElement), TtkNullElementOptions, TabElementSize, TabElementDraw }; /* * Notebook panes: */ static void PaneElementSize( void *clientData, void *elementRecord, Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) { *paddingPtr = Ttk_MakePadding(9, 5, 9, 9); }