summaryrefslogtreecommitdiffstats
path: root/tdegtk/tdegtk-draw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdegtk/tdegtk-draw.cpp')
-rw-r--r--tdegtk/tdegtk-draw.cpp134
1 files changed, 84 insertions, 50 deletions
diff --git a/tdegtk/tdegtk-draw.cpp b/tdegtk/tdegtk-draw.cpp
index 20cce27..36244e6 100644
--- a/tdegtk/tdegtk-draw.cpp
+++ b/tdegtk/tdegtk-draw.cpp
@@ -46,7 +46,7 @@
#define DEBUG_FILL_BACKGROUND_WITH_COLOR(p,x,y,z) TQBrush brush2( TQColor(x,y,z), TQBrush::SolidPattern ); \
p.setBrush( brush2 ); \
p.setPen( TQt::NoPen ); \
- p.drawRect( 0,0, 5000,5000 );
+ p.drawRect( 0,0, width*2,height*2 );
#define DRAW_FILLED_RECTANGLE_OVER_ENTIRE_AREA(p,x) p.setBrush(x); \
p.setPen(TQt::NoPen); \
@@ -374,10 +374,13 @@ tdegtk_draw_activity (DRAW_ARGS)
ceData.rect = boundingRect;
ceData.orientation = (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_VERTICAL))?TQt::Vertical:TQt::Horizontal;
+ TQStyle::SFlags sflags = gtkToTQtStyleFlags(engine, state, TQT3WT_NONE);
+ sflags = sflags | ((ceData.orientation == TQt::Horizontal)?TQStyle::Style_Horizontal:TQStyle::Style_Default);
+
TQRect progressBarRect = TQStyle::visualRect(tqApp->style().subRect(TQStyle::SR_ProgressBarContents, ceData, elementFlags, NULL), ceData, elementFlags);
// Draw item
- tqApp->style().drawControl(TQStyle::CE_ProgressBarContents, &p, ceData, elementFlags, progressBarRect, ((state & GTK_STATE_FLAG_INSENSITIVE)?objectPalette.disabled():objectPalette.active()), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE) | ((ceData.orientation == TQt::Horizontal)?TQStyle::Style_Horizontal:TQStyle::Style_Default));
+ tqApp->style().drawControl(TQStyle::CE_ProgressBarContents, &p, ceData, elementFlags, progressBarRect, ((state & GTK_STATE_FLAG_INSENSITIVE)?objectPalette.disabled():objectPalette.active()), sflags);
}
else {
@@ -426,6 +429,13 @@ tdegtk_draw_arrow (GtkThemingEngine *engine,
arrow_direction = GTK_ARROW_LEFT;
}
+#if 0
+ if (Gtk::gtk_widget_path_has_type(path, GTK_TYPE_COMBO_BOX)) {
+ // Do nothing
+ }
+
+ else
+#endif
if (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_SCROLLBAR)) {
TQStringList objectTypes;
objectTypes.append(TQSCROLLBAR_OBJECT_NAME_STRING);
@@ -529,50 +539,15 @@ tdegtk_draw_arrow (GtkThemingEngine *engine,
}
cairo_restore(cr);
-
- return;
-
- GdkRGBA color;
- gdouble size_reduction = 2;
-
- state = gtk_theming_engine_get_state (engine);
-
- gtk_theming_engine_get_color (engine, state, &color);
-
- cairo_save (cr);
-
- /* use floor function to adjust doubles */
- y = floor (y);
- x = floor (x);
- size = floor (size);
-
- size -= size_reduction;
-
- cairo_translate (cr, size_reduction / 2, size_reduction / 2);
- cairo_translate (cr, x + (gint) (size / 2.0) + 0.5, y + (gint) (size / 2.0) + 0.5);
- cairo_rotate (cr, angle - G_PI_2);
- cairo_translate (cr, (gint) (size / 4.0), 0);
-
- /* FIXME this + 1/- 1 is done to fix blurred diagonal lines.
- * I know it's not nice at all, but it fix a visual bug */
- cairo_move_to (cr, - (gint) (size / 2.0), - (gint) (size / 2.0));
- cairo_rel_line_to (cr, (gint) (size / 2.0) + 1, (gint) (size / 2.0));
- cairo_rel_line_to (cr, - (gint) (size / 2.0) - 1, (gint) (size / 2.0));
- cairo_close_path (cr);
-
- cairo_set_source_rgba (cr, color.red, color.green, color.blue, color.alpha * 0.75);
- cairo_fill_preserve (cr);
-
- gdk_cairo_set_source_rgba (cr, &color);
- cairo_stroke (cr);
-
- cairo_restore (cr);
}
static void
tdegtk_draw_cell_background (DRAW_ARGS,
GtkRegionFlags flags)
{
+ cairo_save(cr);
+ cairo_reset_clip(cr);
+
TQRect boundingRect(0, 0, width, height);
TQt3CairoPaintDevice pd(NULL, x, y, width, height, cr);
TQPainter p(&pd);
@@ -614,6 +589,8 @@ tdegtk_draw_cell_background (DRAW_ARGS,
}
p.end();
+
+ cairo_restore(cr);
}
static void
@@ -756,6 +733,30 @@ tdegtk_draw_common_background (DRAW_ARGS)
tqApp->style().drawPrimitive(TQStyle::PE_PanelLineEdit, &p, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE) | ((ceData.orientation == TQt::Horizontal)?TQStyle::Style_Horizontal:TQStyle::Style_Default));
}
+#if 0
+ else if (Gtk::gtk_widget_path_has_type(path, GTK_TYPE_COMBO_BOX)) {
+ bool mousedown = (state & GTK_STATE_FLAG_ACTIVE) != 0;
+
+ TQStringList objectTypes;
+ objectTypes.append(TQCOMBOBOX_OBJECT_NAME_STRING);
+ TQPalette objectPalette = tqApp->palette(objectTypes);
+
+ TQStyleControlElementData ceData;
+ TQStyle::ControlElementFlags elementFlags;
+ ceData.widgetObjectTypes = objectTypes;
+ ceData.orientation = (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_VERTICAL))?TQt::Vertical:TQt::Horizontal;
+
+ if (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_ENTRY)) {
+ elementFlags = elementFlags | TQStyle::CEF_IsEditable;
+ }
+
+ ceData.rect = boundingRect;
+
+ // Draw item
+ tqApp->style().drawComplexControl(TQStyle::CC_ComboBox, &p, ceData, elementFlags, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE), TQStyle::SC_ComboBoxEditField, TQStyle::SC_None);
+ }
+#endif
+
else if (gtk_widget_path_is_type(path, GTK_TYPE_BUTTON)) {
TQStringList objectTypes;
objectTypes.append(TQBUTTON_OBJECT_NAME_STRING);
@@ -889,7 +890,7 @@ tdegtk_draw_common_background (DRAW_ARGS)
tqApp->style().drawComplexControl(TQStyle::CC_ListView, &p, ceData, elementFlags, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE), TQStyle::SC_ListView, TQStyle::SC_All, listViewItemOpt);
}
- else if (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_SCALE)) {
+ else if (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_SCALE) /*&& gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH)*/) {
//bool mousedown = (state & GTK_STATE_FLAG_SELECTED) != 0;
bool mousedown = (state & GTK_STATE_FLAG_ACTIVE) != 0;
@@ -994,6 +995,29 @@ tdegtk_draw_common_frame (DRAW_ARGS)
tqApp->style().drawPrimitive(TQStyle::PE_ScrollBarAddPage, &p, scrollpagerect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE));
}
}
+#if 0
+ else if (Gtk::gtk_widget_path_has_type(path, GTK_TYPE_COMBO_BOX)) {
+ bool mousedown = (state & GTK_STATE_FLAG_ACTIVE) != 0;
+
+ TQStringList objectTypes;
+ objectTypes.append(TQCOMBOBOX_OBJECT_NAME_STRING);
+ TQPalette objectPalette = tqApp->palette(objectTypes);
+
+ TQStyleControlElementData ceData;
+ TQStyle::ControlElementFlags elementFlags;
+ ceData.widgetObjectTypes = objectTypes;
+ ceData.orientation = (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_VERTICAL))?TQt::Vertical:TQt::Horizontal;
+
+ if (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_ENTRY)) {
+ elementFlags = elementFlags | TQStyle::CEF_IsEditable;
+ }
+
+ ceData.rect = boundingRect;
+
+ // Draw item
+ tqApp->style().drawComplexControl(TQStyle::CC_ComboBox, &p, ceData, elementFlags, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE), TQStyle::SC_ComboBoxFrame, TQStyle::SC_None);
+ }
+#endif
else {
if (gtk_widget_path_is_type(path, GTK_TYPE_BUTTON)) {
if (Gtk::gtk_widget_path_has_type(path, GTK_TYPE_TOOLBAR)) {
@@ -1364,6 +1388,9 @@ tdegtk_draw_focus (DRAW_ARGS)
else if (gtk_widget_path_is_type(path, GTK_TYPE_TREE_VIEW)) {
objectTypes.append(TQLISTVIEW_OBJECT_NAME_STRING);
}
+ else if (gtk_widget_path_is_type(path, GTK_TYPE_BUTTON)) {
+ objectTypes.append(TQPUSHBUTTON_OBJECT_NAME_STRING);
+ }
else {
objectTypes.append(TQWIDGET_OBJECT_NAME_STRING);
}
@@ -1491,9 +1518,6 @@ tdegtk_draw_frame_gap (DRAW_ARGS,
static void
tdegtk_draw_grip (DRAW_ARGS)
{
- cairo_save(cr);
- cairo_reset_clip(cr);
-
TQRect boundingRect(0, 0, width, height);
TQt3CairoPaintDevice pd(NULL, x, y, width, height, cr);
TQPainter p(&pd);
@@ -1501,11 +1525,23 @@ tdegtk_draw_grip (DRAW_ARGS)
GtkStateFlags state;
state = gtk_theming_engine_get_state(engine);
- tqApp->style().drawPrimitive(TQStyle::PE_SizeGrip, &p, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE));
+ TQStringList objectTypes;
+ objectTypes.append(TQSTATUSBAR_OBJECT_NAME_STRING);
+ TQPalette objectPalette = tqApp->palette(objectTypes);
- p.end();
+ // Draw background
+ TQBrush brush = objectPalette.brush(gtkToTQPaletteColorGroup(engine, state), TQColorGroup::Background);
+ DRAW_FILLED_RECTANGLE_OVER_ENTIRE_AREA(p, brush)
+
+ cairo_save(cr);
+ cairo_reset_clip(cr);
+
+ // Draw grip
+ tqApp->style().drawPrimitive(TQStyle::PE_SizeGrip, &p, boundingRect, gtkToTQtColorGroup(engine, state), gtkToTQtStyleFlags(engine, state, TQT3WT_NONE));
cairo_restore(cr);
+
+ p.end();
}
static void
@@ -1820,10 +1856,8 @@ tdegtk_draw_slider (DRAW_ARGS,
ceData.widgetObjectTypes = objectTypes;
ceData.orientation = (gtk_theming_engine_has_class(engine, GTK_STYLE_CLASS_VERTICAL))?TQt::Vertical:TQt::Horizontal;
- // HACK
- // GTK3 or TQt3 (not sure which) does not draw the slider in the correct location!
- boundingRect = TQRect((ceData.orientation == TQt::Horizontal)?2:0, (ceData.orientation == TQt::Horizontal)?0:2, width, height);
- TQt3CairoPaintDevice pd2(NULL, x, y, width, height, cr);
+ boundingRect = TQRect(0, 0, width, height);
+ TQt3CairoPaintDevice pd2(NULL, x, y, width+4, height+4, cr);
TQPainter p2(&pd2);
ceData.rect = boundingRect;