Skip to content
This repository has been archived by the owner on Mar 7, 2018. It is now read-only.

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
git-svn-id: file:///home/justin/tmp/tmp/svn/neatstuff/trunk@12 972056c0-ec0e-4c9f-ad5b-9eb1d9b6bad5
  • Loading branch information
mblsha committed May 3, 2003
1 parent c5cab65 commit 15b37be
Show file tree
Hide file tree
Showing 6 changed files with 378 additions and 130 deletions.
13 changes: 13 additions & 0 deletions iconset/iconset.pri
@@ -0,0 +1,13 @@
iconset {
INCLUDEPATH += $$ICONSET_CPP

SOURCES += \
$$ICONSET_CPP/iconset.cpp \
$$ICONSET_CPP/anim.cpp \
$$ICONSET_CPP/psipng.cpp

HEADERS += \
$$ICONSET_CPP/iconset.h \
$$ICONSET_CPP/anim.h \
$$ICONSET_CPP/psipng.h
}
7 changes: 6 additions & 1 deletion psiwidgets/iconwidget.cpp
Expand Up @@ -51,8 +51,12 @@ class IconsetSelectItem : public IconWidgetItem

public:
IconsetSelectItem(QListBox *parent, IconsetSelectItem *after, const Iconset &_iconset)
: IconWidgetItem(parent, after), iss(_iconset)
: IconWidgetItem(parent, after)
#ifndef WIDGET_PLUGIN
, iss(_iconset)
#endif
{
#ifndef WIDGET_PLUGIN
setText( iss.name() );

w = margin;
Expand Down Expand Up @@ -81,6 +85,7 @@ class IconsetSelectItem : public IconWidgetItem
QRect r = it2.data();
it2.data() = QRect( r.x(), (h - r.height())/2, r.width(), r.height() );
}
#endif
}

~IconsetSelectItem()
Expand Down
23 changes: 23 additions & 0 deletions psiwidgets/psiwidgets.pri
@@ -0,0 +1,23 @@
psiwidgets {
INCLUDEPATH += $$WIDGETS_CPP

SOURCES += \
$$WIDGETS_CPP/busywidget.cpp \
$$WIDGETS_CPP/fancylabel.cpp \
$$WIDGETS_CPP/iconselect.cpp \
$$WIDGETS_CPP/iconwidget.cpp \
$$WIDGETS_CPP/psitextview.cpp

HEADERS += \
$$WIDGETS_CPP/busywidget.h \
$$WIDGETS_CPP/fancylabel.h \
$$WIDGETS_CPP/iconselect.h \
$$WIDGETS_CPP/iconwidget.h \
$$WIDGETS_CPP/psitextview.h

# to remove dependency on iconset and stuff
#DEFINES += WIDGET_PLUGIN

# where to search for widgets plugin
QMAKE_UIC = $(QTDIR)/bin/uic -L $$WIDGETS_CPP
}
285 changes: 232 additions & 53 deletions qgtk/fakegdkwindow.cpp
Expand Up @@ -6,88 +6,201 @@

struct QGtkPainter
{
QPainter *painter;
};
static QPainter *painter;

// fake gdk window, that initializes drawing functions
static GdkGC *create_gc(GdkDrawable *drawable, GdkGCValues *values, GdkGCValuesMask mask)
{
qWarning("QGtkPainter::create_gc -- not implemented yet");
return 0;
}

struct FakeGdkWindow
{
GdkWindow parent_instance;
};
static void draw_rectangle(GdkDrawable *drawable, GdkGC *gc, gboolean filled, gint x, gint y, gint width, gint height)
{
qWarning("QGtkPainter::draw_rectangle -- not implemented yet");

struct FakeGdkWindowClass
{
GdkWindowObjectClass parent_class;
};
GdkGCValues values;
GDK_GC_GET_CLASS(gc)->get_values(gc, &values);

static void fakeGdkWindow_init (FakeGdkWindow *)
{
}
GdkColor col = values.background; //foreground
QColor foreground(col.red/256, col.green/256, col.blue/256);

static void fakeGdkWindowClass_init (FakeGdkWindowClass *klass, QGtkPainter *painter)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
if ( filled )
painter->setBrush( foreground );
else
painter->setPen( foreground );
painter->drawRect(x, y, width, height);
}

gpointer parent_class = g_type_class_peek_parent (klass);
static void draw_arc(GdkDrawable *drawable, GdkGC *gc, gboolean filled, gint x, gint y, gint width, gint height, gint angle1, gint angle2)
{
qWarning("QGtkPainter::draw_arc -- not implemented yet");
}

/*object_class->finalize = gdk_window_impl_x11_finalize;
static void draw_polygon(GdkDrawable *drawable, GdkGC *gc, gboolean filled, GdkPoint *points, gint npoints)
{
qWarning("QGtkPainter::draw_polygon -- not implemented yet");
}

drawable_class->set_colormap = gdk_window_impl_x11_set_colormap;
drawable_class->get_colormap = gdk_window_impl_x11_get_colormap;
drawable_class->get_size = gdk_window_impl_x11_get_size;
static void draw_text(GdkDrawable *drawable, GdkFont *font, GdkGC *gc, gint x, gint y, const gchar *text, gint text_length)
{
qWarning("QGtkPainter::draw_text -- not implemented yet");
}

drawable_class->get_clip_region = gdk_window_impl_x11_get_visible_region;
drawable_class->get_visible_region = gdk_window_impl_x11_get_visible_region;*/
static void draw_text_wc(GdkDrawable *drawable, GdkFont *font, GdkGC *gc, gint x, gint y, const GdkWChar *text, gint text_length)
{
qWarning("QGtkPainter::draw_text_wc -- not implemented yet");
}

//drawable_class->blah = painter->blah;
}
static void draw_drawable(GdkDrawable *drawable, GdkGC *gc, GdkDrawable *src, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height)
{
qWarning("QGtkPainter::draw_drawable -- not implemented yet");
}

static GType fakeGdkWindow_get_type (QGtkPainter *painter)
{
static GType object_type = 0;
static void draw_points(GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints)
{
qWarning("QGtkPainter::draw_points -- not implemented yet");
}

if ( !object_type ) {
static const GTypeInfo object_info = {
sizeof (FakeGdkWindowClass),
(GBaseInitFunc) 0,
(GBaseFinalizeFunc) 0,
(GClassInitFunc) fakeGdkWindowClass_init,
0,
painter, // FIXME
sizeof (FakeGdkWindow),
0,
(GInstanceInitFunc) fakeGdkWindow_init,
0
};
static void draw_segments(GdkDrawable *drawable, GdkGC *gc, GdkSegment *segs, gint nsegs)
{
qWarning("QGtkPainter::draw_segments -- not implemented yet");
}

object_type = g_type_register_static (GDK_TYPE_DRAWABLE, "FakeGdkWindow", &object_info, (GTypeFlags) 0);
static void draw_lines(GdkDrawable *drawable, GdkGC *gc, GdkPoint *points, gint npoints)
{
qWarning("QGtkPainter::draw_lines -- not implemented yet");
}

return object_type;
}
static void draw_glyphs(GdkDrawable *drawable, GdkGC *gc, PangoFont *font, gint x, gint y, PangoGlyphString *glyphs)
{
qWarning("QGtkPainter::draw_glyphs -- not implemented yet");
}

static void draw_image(GdkDrawable *drawable, GdkGC *gc, GdkImage *image, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height)
{
qWarning("QGtkPainter::draw_image -- not implemented yet");
}

static gint get_depth(GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_depth -- not implemented yet");
return 24;
}

static void get_size(GdkDrawable *drawable, gint *width, gint *height)
{
qWarning("QGtkPainter::get_size -- not implemented yet");
}

static void set_colormap(GdkDrawable *drawable, GdkColormap *cmap)
{
qWarning("QGtkPainter::set_colormap -- not implemented yet");
}

static GdkColormap *get_colormap (GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_colormap -- not implemented yet");
return 0;
}

static GdkVisual *get_visual(GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_visual -- not implemented yet");
return 0;
}

static GdkScreen *get_screen(GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_screen -- not implemented yet");
return 0;
}

static GdkImage *get_image(GdkDrawable *drawable, gint x, gint y, gint width, gint height)
{
qWarning("QGtkPainter::get_image -- not implemented yet");
return 0;
}

static GdkRegion *get_clip_region(GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_clip_region -- not implemented yet");
return 0;
}

static GdkRegion *get_visible_region(GdkDrawable *drawable)
{
qWarning("QGtkPainter::get_visible_region -- not implemented yet");
return 0;
}

// class with actual drawing functions
static GdkDrawable *get_composite_drawable(GdkDrawable *drawable, gint x, gint y, gint width, gint height, gint *composite_x_offset, gint *composite_y_offset)
{
qWarning("QGtkPainter::get_composite_drawable -- not implemented yet");
return 0;
}

static void draw_pixbuf(GdkDrawable *drawable, GdkGC *gc, GdkPixbuf *pixbuf, gint src_x, gint src_y, gint dest_x, gint dest_y, gint width, gint height, GdkRgbDither dither, gint x_dither, gint y_dither)
{
qWarning("QGtkPainter::draw_pixbuf -- not implemented yet");
}

static GdkImage *_copy_to_image(GdkDrawable *drawable, GdkImage *image, gint src_x, gint src_y, gint dest_x, gint dest_y, gint width, gint height)
{
qWarning("QGtkPainter::_copy_to_image -- not implemented yet");
return 0;
}
};

QPainter *QGtkPainter::painter = 0;

// FIXME: QGtkPainter should be made global static

class FakeGdkWindowSupplier::Private
{
public:
FakeGdkWindow *window;
QGtkPainter *qgtkPainter;

Private()
{
qgtkPainter = new QGtkPainter; // FIXME
window = (FakeGdkWindow *)g_object_new( fakeGdkWindow_get_type(qgtkPainter), NULL );
gtk_init (0, 0);

GdkWindowAttr attributes;
attributes.window_type = /*GDK_WINDOW_TEMP;*/ GDK_WINDOW_TOPLEVEL;
attributes.wclass = GDK_INPUT_OUTPUT;
gint attributes_mask = 0;
window = (FakeGdkWindow *)gdk_window_new(0, &attributes, attributes_mask);

// setting our drawing functions
GdkDrawableClass *drawable = GDK_DRAWABLE_GET_CLASS(window);

drawable->create_gc = QGtkPainter::create_gc;
drawable->draw_rectangle = QGtkPainter::draw_rectangle;
drawable->draw_arc = QGtkPainter::draw_arc;
drawable->draw_polygon = QGtkPainter::draw_polygon;
drawable->draw_text = QGtkPainter::draw_text;
drawable->draw_text_wc = QGtkPainter::draw_text_wc;
drawable->draw_drawable = QGtkPainter::draw_drawable;
drawable->draw_points = QGtkPainter::draw_points;
drawable->draw_segments = QGtkPainter::draw_segments;
drawable->draw_lines = QGtkPainter::draw_lines;
drawable->draw_glyphs = QGtkPainter::draw_glyphs;
drawable->draw_image = QGtkPainter::draw_image;
drawable->get_depth = QGtkPainter::get_depth;
drawable->get_size = QGtkPainter::get_size;
//drawable->set_colormap = QGtkPainter::set_colormap;
//drawable->get_colormap = QGtkPainter::get_colormap;
//drawable->get_visual = QGtkPainter::get_visual;
//drawable->get_screen = QGtkPainter::get_screen;
drawable->get_image = QGtkPainter::get_image;
drawable->get_clip_region = QGtkPainter::get_clip_region;
drawable->get_visible_region = QGtkPainter::get_visible_region;
drawable->get_composite_drawable = QGtkPainter::get_composite_drawable;
drawable->draw_pixbuf = QGtkPainter::draw_pixbuf;
drawable->_copy_to_image = QGtkPainter::_copy_to_image;
}

~Private()
{
g_object_unref( window );
delete qgtkPainter; // FIXME
}
};

Expand All @@ -106,10 +219,76 @@ FakeGdkWindowSupplier::~FakeGdkWindowSupplier()

void FakeGdkWindowSupplier::setPainter(QPainter *painter)
{
d->qgtkPainter->painter = painter;
QGtkPainter::painter = painter;
}

FakeGdkWindow *FakeGdkWindowSupplier::getWindow()
{
return d->window;
}

#if 0
// fake gdk window, that initializes drawing functions

struct FakeGdkWindow
{
GdkWindowObject parent_instance;
};

struct FakeGdkWindowClass
{
GdkWindowObjectClass parent_class;
};

static void fakeGdkWindow_init (FakeGdkWindow *)
{
}

static void fakeGdkWindowClass_init (FakeGdkWindowClass *klass, QGtkPainter *painter)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
GdkWindowObjectClass *window_class = GDK_WINDOW_CLASS (klass);

gpointer parent_class = g_type_class_peek_parent (klass);

/*object_class->finalize = gdk_window_impl_x11_finalize;

drawable_class->set_colormap = gdk_window_impl_x11_set_colormap;
drawable_class->get_colormap = gdk_window_impl_x11_get_colormap;
drawable_class->get_size = gdk_window_impl_x11_get_size;

drawable_class->get_clip_region = gdk_window_impl_x11_get_visible_region;
drawable_class->get_visible_region = gdk_window_impl_x11_get_visible_region;*/

//drawable_class->blah = painter->blah;
}

static GType fakeGdkWindow_get_type (QGtkPainter *painter)
{
static GType object_type = 0;

if ( !object_type ) {
static const GTypeInfo object_info = {
sizeof (FakeGdkWindowClass), // class size
(GBaseInitFunc) 0, // base init
(GBaseFinalizeFunc) 0, // base finalize

(GClassInitFunc) fakeGdkWindowClass_init, // class init
0, // class finalize
painter, // FIXME // class data

sizeof (FakeGdkWindow), // instance size
0, // n_preallocs
(GInstanceInitFunc) fakeGdkWindow_init, // instance init

0 // value table
};

object_type = g_type_register_static (GDK_TYPE_WINDOW, "FakeGdkWindow", &object_info, (GTypeFlags)0);
}

return object_type;
}
#endif

0 comments on commit 15b37be

Please sign in to comment.