--- np2/x11/gtk/Attic/window_viewer.c 2003/12/11 15:11:56 1.1 +++ np2/x11/gtk/Attic/window_viewer.c 2003/12/19 16:08:02 1.3 @@ -31,7 +31,6 @@ #include "np2.h" #include "cpucore.h" -#include "memory.h" #include "pccore.h" #include "iocore.h" @@ -58,6 +57,7 @@ static void viewseg_expose(NP2VIEW_T *vi /* misc */ static void invalidate(NP2VIEW_T *view); +static void viewer_set_adjustment(NP2VIEW_T *view); /*----------------------------------------------------------------------------- @@ -138,6 +138,7 @@ viewcmn_setmode(NP2VIEW_T *dst, NP2VIEW_ viewseg_init(dst, src); break; } + viewer_set_adjustment(dst); } static void @@ -152,18 +153,6 @@ viewcmn_setbank(NP2VIEW_T *view) } static void -viewer_segmode(NP2VIEW_T *view, BYTE type) -{ - - if (view->type != type) { - viewcmn_setmode(view, view, type); - viewcmn_setbank(view); - viewcmn_setvscroll(view); - invalidate(view); - } -} - -static void viewcmn_paint(NP2VIEW_T *view, void (*callback)(NP2VIEW_T *, RECT_T *)) { GtkWidget *w = (GtkWidget *)view->widget; @@ -367,6 +356,18 @@ viewseg_expose(NP2VIEW_T *view) static GtkWidget *viewer_create_menu(NP2VIEW_T *view, GtkWidget *parent); static void +viewer_segmode(NP2VIEW_T *view, BYTE type) +{ + + if (view->type != type) { + viewcmn_setmode(view, view, type); + viewcmn_setbank(view); + viewcmn_setvscroll(view); + invalidate(view); + } +} + +static void viewer_close(NP2VIEW_T *view) { @@ -475,6 +476,37 @@ viewer_value_changed(GtkAdjustment *adj, return TRUE; } +static void +viewer_set_adjustment(NP2VIEW_T *view) +{ + GtkWidget *w = GTK_WIDGET(view->widget); + GtkWidget *vscr; + GtkObject *adj; + + if (view->vscr) { + vscr = view->vscr; + view->vscr = NULL; + gtk_container_remove(GTK_CONTAINER(w->parent), vscr); + gtk_widget_destroy(vscr); + } + + printf("height = %d\n", w->allocation.height); + printf("fontsize = %d\n", view->fontsize); + printf("pos = %d\n", view->pos); + printf("maxline = %d\n", view->maxline); + + adj = gtk_adjustment_new(0.0, 0.0, 3.0, 1.0, 1.0, 1.0); + gtk_signal_connect_object(adj, "changed", + GTK_SIGNAL_FUNC(viewer_changed), (gpointer)view); + gtk_signal_connect_object(adj, "value_changed", + GTK_SIGNAL_FUNC(viewer_value_changed), + (gpointer)view); + vscr = gtk_vscrollbar_new(GTK_ADJUSTMENT(adj)); + view->vscr = vscr; + gtk_widget_show(vscr); + gtk_box_pack_start(GTK_BOX(w->parent), vscr, FALSE, TRUE, 0); +} + static gboolean view_fontload(NP2VIEW_T *view, UINT8 size) { @@ -542,8 +574,6 @@ viewer_open(void) GtkWidget *rw; GtkWidget *bw; GtkWidget *cw; - GtkWidget *vscr; - GtkObject *adj; NP2VIEW_T *view; int i; @@ -585,18 +615,7 @@ viewer_open(void) gtk_signal_connect(GTK_OBJECT(cw), "expose_event", GTK_SIGNAL_FUNC(viewer_expose), (gpointer)view); - adj = gtk_adjustment_new(0.0, 0.0, 3.0, 1.0, 1.0, 1.0); - gtk_signal_connect_object(adj, "changed", - GTK_SIGNAL_FUNC(viewer_changed), (gpointer)view); - gtk_signal_connect_object(adj, "value_changed", - GTK_SIGNAL_FUNC(viewer_value_changed), - (gpointer)view); - vscr = gtk_vscrollbar_new(GTK_ADJUSTMENT(adj)); - gtk_widget_show(vscr); - gtk_box_pack_start(GTK_BOX(bw), vscr, FALSE, TRUE, 0); - view_fontload(view, DEFAULT_FONTSIZE); - viewcmn_setmode(view, NULL, VIEWMODE_REG); gtk_widget_realize(view->window);