gint configure_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { int i; if( pixmap ) { g_object_unref( pixmap ); for( i = bg; i <= vp_frame; i++ ) gdk_gc_unref( gc[i] ); } pixmap = gdk_pixmap_new( widget->window, width, height, -1 ); for( i = bg; i <= ws_divider; i++ ) gdk_gc_set_foreground( gc[i] = gdk_gc_new( pixmap ), &colors[i] ); /* wishing for a nicer line style, like 3 on, 5 off, making this alternate for neighbouring VPs */ gdk_gc_set_line_attributes( gc[vp_divider], 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_ROUND, GDK_JOIN_ROUND ); gdk_gc_set_foreground( gc[vp_frame] = gdk_gc_new( pixmap ), &colors[vp_divider] ); gdk_gc_set_line_attributes( gc[vp_frame], 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_ROUND, GDK_JOIN_ROUND ); /* wishing for Gimp-style functions -- GDK is just too primitive */ /* gdk_gc_set_function( gc[vp_frame], GDK_XOR ); */ make_background(); draw_pager( widget ); return TRUE; }
pager::pager(QWidget *parent) : QLabel(parent) { dwidth = QApplication::desktop()->width(); dheight = QApplication::desktop()->height(); setFixedSize((int)((defaults::vdesks*defaults::pager_height*(float)dwidth)/(float)dheight)+2, defaults::pager_height); setFrameStyle(QFrame::Panel|QFrame::Sunken); setLineWidth(1); vw = (width()-2)/defaults::vdesks; vh = defaults::pager_height-2; backpix = new QPixmap(width()-2, vh); draw_pager(); }