diff options
author | Jeremiah Benham <jjbenham@chicagoguitar.com> | 2011-02-10 14:54:16 -0600 |
---|---|---|
committer | Jeremiah Benham <jjbenham@chicagoguitar.com> | 2011-02-10 14:54:16 -0600 |
commit | 1519bcd61052e74976c8dc1215f9eb5e2f8d38a5 (patch) | |
tree | 7da24ef4cb8fb5763decc65a984370978f800a78 /src | |
parent | 27677214cba473396bfcb858359285024b142680 (diff) | |
parent | 495ff78e822abc91f2d4bc7a87f190a4f01a0f4a (diff) |
Merge branch 'master' of git.sv.gnu.org:/srv/git/denemo
Diffstat (limited to 'src')
-rw-r--r-- | src/file.c | 8 | ||||
-rw-r--r-- | src/print.c | 125 | ||||
-rw-r--r-- | src/view.c | 64 | ||||
-rw-r--r-- | src/view.h | 1 |
4 files changed, 110 insertions, 88 deletions
@@ -276,8 +276,8 @@ open_for_real (gchar * filename, DenemoGUI * gui, DenemoSaveType template, Impor score_status(gui, TRUE); } else g_string_assign (gui->filename, ""); - if(gui->printarea) - g_object_set_data(G_OBJECT(gui->printarea), "printviewupdate", (gpointer)G_MAXUINT); + if(Denemo.printarea) + g_object_set_data(G_OBJECT(Denemo.printarea), "printviewupdate", (gpointer)G_MAXUINT); if(!xml) updatescoreinfo (gui); set_rightmeasurenum (gui->si); @@ -1185,8 +1185,8 @@ file_newwrapper (GtkAction * action, gpointer param) } //open_user_default_template(REPLACE_SCORE); load_initdotdenemo(); - if(gui->printarea) - g_object_set_data(G_OBJECT(gui->printarea), "printviewupdate", (gpointer)G_MAXUINT); + if(Denemo.printarea) + g_object_set_data(G_OBJECT(Denemo.printarea), "printviewupdate", (gpointer)G_MAXUINT); } /* open_user_default_template diff --git a/src/print.c b/src/print.c index 21db5231..bd8e39a4 100644 --- a/src/print.c +++ b/src/print.c @@ -1,4 +1,4 @@ -/* print.c +/* Print.c * * printing support for GNU Denemo * outputs to a pdf or png file @@ -896,32 +896,32 @@ printall(void) { static void draw_print(DenemoGUI *gui) { gint x, y; - GtkAdjustment * adjust = gtk_range_get_adjustment(GTK_RANGE(gui->printhscrollbar)); + GtkAdjustment * adjust = gtk_range_get_adjustment(GTK_RANGE(Denemo.printhscrollbar)); x = (gint)adjust->value; - adjust = gtk_range_get_adjustment(GTK_RANGE(gui->printvscrollbar)); + adjust = gtk_range_get_adjustment(GTK_RANGE(Denemo.printvscrollbar)); y = (gint)adjust->value; gint width, height; - width = gdk_pixbuf_get_width( GDK_PIXBUF(gui->pixbuf)) - x; - height = gdk_pixbuf_get_height( GDK_PIXBUF(gui->pixbuf)) - y; + width = gdk_pixbuf_get_width( GDK_PIXBUF(Denemo.pixbuf)) - x; + height = gdk_pixbuf_get_height( GDK_PIXBUF(Denemo.pixbuf)) - y; - gdk_draw_pixbuf(gui->printarea->window, NULL, GDK_PIXBUF(gui->pixbuf), + gdk_draw_pixbuf(Denemo.printarea->window, NULL, GDK_PIXBUF(Denemo.pixbuf), x,y,0,0,/* x, y in pixbuf, x,y in window */ width, height, GDK_RGB_DITHER_NONE,0,0); if(selecting) {gint w = ABS(markx-curx); gint h = ABS(marky-cury); - gdk_draw_rectangle (Denemo.gui->printarea->window, + gdk_draw_rectangle (Denemo.printarea->window, gcs_bluegc(), FALSE,markx, marky, w, h); } if(offsetting) { gint w = pointx-markx; gint h = pointy-marky; - gdk_draw_rectangle (Denemo.gui->printarea->window, + gdk_draw_rectangle (Denemo.printarea->window, gcs_graygc(), TRUE, markx, marky, w, h); - gdk_draw_pixbuf(gui->printarea->window, NULL, GDK_PIXBUF(gui->pixbuf), + gdk_draw_pixbuf(Denemo.printarea->window, NULL, GDK_PIXBUF(Denemo.pixbuf), markx+x, marky+y, curx, cury,/* x, y in pixbuf, x,y in window */ w, h, GDK_RGB_DITHER_NONE,0,0); @@ -933,9 +933,9 @@ static void draw_print(DenemoGUI *gui) { gint w = pointx-markx; gint h = pointy-marky; - gdk_draw_rectangle (Denemo.gui->printarea->window, + gdk_draw_rectangle (Denemo.printarea->window, gcs_graygc(), TRUE, markx-pad/2, marky-pad/2, w+pad, h+pad); - gdk_draw_pixbuf(gui->printarea->window, NULL, GDK_PIXBUF(gui->pixbuf), + gdk_draw_pixbuf(Denemo.printarea->window, NULL, GDK_PIXBUF(Denemo.pixbuf), markx+x, marky+y, markx, marky,/* x, y in pixbuf, x,y in window */ w, h, GDK_RGB_DITHER_NONE,0,0); @@ -947,10 +947,10 @@ static void draw_print(DenemoGUI *gui) { static GdkCursor *busycursor; static GdkCursor *arrowcursor; static void busy_cursor(void) { - gdk_window_set_cursor(Denemo.gui->printarea->window, busycursor); + gdk_window_set_cursor(Denemo.printarea->window, busycursor); } static void normal_cursor(void) { - gdk_window_set_cursor(Denemo.gui->printarea->window, arrowcursor); + gdk_window_set_cursor(Denemo.printarea->window, arrowcursor); } static void @@ -979,24 +979,24 @@ printview_finished(GPid pid, gint status, gboolean preview_only) { process_printpreview_errors(); gchar *filename = get_printfile_pathbasename(); gchar *path = g_strconcat (filename, "_.png", NULL); - if(gui->pixbuf) - g_object_unref(gui->pixbuf); - gui->pixbuf = gdk_pixbuf_new_from_file (path, &error); + if(Denemo.pixbuf) + g_object_unref(Denemo.pixbuf); + Denemo.pixbuf = gdk_pixbuf_new_from_file (path, &error); if(error != NULL) { g_warning (_("Could not load the print preview:\n%s\n"), error->message); g_error_free (error); error = NULL; - gui->pixbuf = NULL; + Denemo.pixbuf = NULL; } else { gboolean ret; //FIXME the parameters here are placed by trial and error - the docs indicate &ret should come at the end //but an error message results. - g_signal_emit_by_name(gui->printarea, "configure_event", NULL, &ret, NULL); + g_signal_emit_by_name(Denemo.printarea, "configure_event", NULL, &ret, NULL); } - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "printviewupdate", (gpointer) changecount); - gtk_widget_queue_draw (gui->printarea); + g_object_set_data(G_OBJECT(Denemo.printarea), "printviewupdate", (gpointer) changecount); + gtk_widget_queue_draw (Denemo.printarea); if(!preview_only) printall(); @@ -1006,7 +1006,7 @@ void refresh_print_view (gboolean preview_only) { DenemoGUI *gui = Denemo.gui; GError *error = NULL; //g_print("preview only %d\n", preview_only); - if((changecount == Denemo.gui->changecount) && ((gint)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "printviewupdate")==Denemo.gui->changecount)) { + if((changecount == Denemo.gui->changecount) && ((gint)g_object_get_data(G_OBJECT(Denemo.printarea), "printviewupdate")==Denemo.gui->changecount)) { if(confirm ("No changes since last update", "Cancel refresh of print view?")) return; } @@ -1161,8 +1161,8 @@ printall_cb (GtkAction *action, gpointer param) { gchar *str = g_strdup_printf("Direct printing is experimental - use print preview otherwise after setting pdf viewer in prefs (currently %s).", Denemo.prefs.pdfviewer->str); warningdialog(str); g_free(str); - //g_print("changecount %d %d %d \n", changecount, Denemo.gui->changecount, (gint)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "printviewupdate")); - if((changecount == Denemo.gui->changecount) && ((gint)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "printviewupdate")==Denemo.gui->changecount)) + //g_print("changecount %d %d %d \n", changecount, Denemo.gui->changecount, (gint)g_object_get_data(G_OBJECT(Denemo.printarea), "printviewupdate")); + if((changecount == Denemo.gui->changecount) && ((gint)g_object_get_data(G_OBJECT(Denemo.printarea), "printviewupdate")==Denemo.gui->changecount)) printall(); else refresh_print_view(FALSE);//calls printall when lilypond has finished. @@ -1205,18 +1205,18 @@ gint printarea_configure_event (GtkWidget * widget, GdkEventConfigure * event) { DenemoGUI *gui = Denemo.gui; - if(gui->pixbuf==NULL) + if(Denemo.pixbuf==NULL) return FALSE; gint width, height; - gdk_drawable_get_size (gui->printarea->window, &width, &height); - GtkAdjustment * vadjust = gtk_range_get_adjustment(GTK_RANGE(gui->printvscrollbar)); + gdk_drawable_get_size (Denemo.printarea->window, &width, &height); + GtkAdjustment * vadjust = gtk_range_get_adjustment(GTK_RANGE(Denemo.printvscrollbar)); vadjust->lower = vadjust->value = 0.0; - vadjust->upper = (gdouble)gdk_pixbuf_get_height(gui->pixbuf); + vadjust->upper = (gdouble)gdk_pixbuf_get_height(Denemo.pixbuf); vadjust->page_size = (gdouble)height; - GtkAdjustment * hadjust = gtk_range_get_adjustment(GTK_RANGE(gui->printhscrollbar)); + GtkAdjustment * hadjust = gtk_range_get_adjustment(GTK_RANGE(Denemo.printhscrollbar)); hadjust->lower = hadjust->value = 0.0; - hadjust->upper = (gdouble)gdk_pixbuf_get_width(gui->pixbuf); + hadjust->upper = (gdouble)gdk_pixbuf_get_width(Denemo.pixbuf); hadjust->page_size = (gdouble)width; gtk_adjustment_changed(vadjust); @@ -1234,7 +1234,7 @@ printvertical_scroll (GtkAdjustment * adjust) DenemoGUI *gui = Denemo.gui; // g_print("vertical %d to %d\n", (int)adjust->value, (int)(adjust->value+adjust->page_size)); adjust_y=(int)adjust->value; - gtk_widget_queue_draw (gui->printarea); + gtk_widget_queue_draw (Denemo.printarea); } static void @@ -1243,14 +1243,14 @@ printhorizontal_scroll (GtkAdjustment * adjust) DenemoGUI *gui = Denemo.gui; // g_print("horizontal %d to %d\n", (int)adjust->value, (int)(adjust->value+adjust->page_size)); adjust_x=(int)adjust->value; -gtk_widget_queue_draw (gui->printarea); +gtk_widget_queue_draw (Denemo.printarea); } static gint printarea_expose_event (GtkWidget * widget, GdkEventExpose * event) { DenemoGUI *gui = Denemo.gui; - if(gui->pixbuf==NULL) + if(Denemo.pixbuf==NULL) return TRUE; draw_print(gui); return TRUE; @@ -1265,12 +1265,12 @@ printarea_expose_event (GtkWidget * widget, GdkEventExpose * event) gint printarea_motion_notify (GtkWidget * widget, GdkEventButton * event) { - if(Denemo.gui->pixbuf==NULL) + if(Denemo.pixbuf==NULL) return TRUE; if(padding || offsetting || selecting) { curx = (int)event->x; cury = (int)event->y; - gtk_widget_queue_draw (Denemo.gui->printarea); + gtk_widget_queue_draw (Denemo.printarea); } return TRUE; @@ -1305,7 +1305,7 @@ gint printarea_button_press (GtkWidget * widget, GdkEventButton * event) { gboolean left = (event->button != 3); - if((!left) || (Denemo.gui->pixbuf==NULL)) { + if((!left) || (Denemo.pixbuf==NULL)) { popup_print_preview_menu(); return TRUE; } @@ -1314,9 +1314,9 @@ printarea_button_press (GtkWidget * widget, GdkEventButton * event) offsetx = curx - markx; offsety = cury - marky; - GtkWidget *thedialog = g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offset-dialog"); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "offsetx", (gpointer)offsetx); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "offsety", (gpointer)offsety); + GtkWidget *thedialog = g_object_get_data(G_OBJECT(Denemo.printarea), "offset-dialog"); + g_object_set_data(G_OBJECT(Denemo.printarea), "offsetx", (gpointer)offsetx); + g_object_set_data(G_OBJECT(Denemo.printarea), "offsety", (gpointer)offsety); if(thedialog){ gtk_dialog_response(GTK_DIALOG(thedialog), 1/*DRAGGED*/); } else { @@ -1331,8 +1331,8 @@ printarea_button_press (GtkWidget * widget, GdkEventButton * event) if(padding) { gint pad = ABS(curx - markx); - GtkWidget *thedialog = g_object_get_data(G_OBJECT(Denemo.gui->printarea), "pad-dialog"); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "padding", (gpointer)pad); + GtkWidget *thedialog = g_object_get_data(G_OBJECT(Denemo.printarea), "pad-dialog"); + g_object_set_data(G_OBJECT(Denemo.printarea), "padding", (gpointer)pad); if(thedialog){ gtk_dialog_response(GTK_DIALOG(thedialog), 1/*DRAGGED*/); } else { @@ -1350,7 +1350,7 @@ printarea_button_press (GtkWidget * widget, GdkEventButton * event) // return TRUE; // } else selecting = TRUE; - if(Denemo.gui->pixbuf==NULL) + if(Denemo.pixbuf==NULL) return TRUE; pointx = markx=event->x; pointy = marky=event->y; @@ -1367,7 +1367,7 @@ printarea_button_release (GtkWidget * widget, GdkEventButton * event) if(!left) { return TRUE; } - if(Denemo.gui->pixbuf==NULL) + if(Denemo.pixbuf==NULL) return TRUE; if(selecting) { pointx=event->x; @@ -1378,7 +1378,7 @@ printarea_button_release (GtkWidget * widget, GdkEventButton * event) width = pointx-markx; height = pointy-marky; GtkIconFactory *icon_factory = gtk_icon_factory_new (); - GdkPixbuf *sub_pixbuf = gdk_pixbuf_new_subpixbuf (Denemo.gui->pixbuf, markx+adjust_x, marky+adjust_y, width, height); + GdkPixbuf *sub_pixbuf = gdk_pixbuf_new_subpixbuf (Denemo.pixbuf, markx+adjust_x, marky+adjust_y, width, height); GdkPixbuf *alphapixbuf = gdk_pixbuf_add_alpha (sub_pixbuf, TRUE, 255, 255, 255); GdkPixbuf *scaledpixbuf = gdk_pixbuf_scale_simple(alphapixbuf, width, height,GDK_INTERP_BILINEAR); @@ -1405,41 +1405,54 @@ printarea_button_release (GtkWidget * widget, GdkEventButton * event) } void install_printpreview(DenemoGUI *gui, GtkWidget *top_vbox){ + if(Denemo.printarea) + return; busycursor = gdk_cursor_new(GDK_WATCH); arrowcursor = gdk_cursor_new(GDK_RIGHT_PTR);//FIXME what is the system cursor called?? + GtkWidget *main_vbox = gtk_vbox_new (FALSE, 1); +#if 1 + top_vbox = gtk_window_new(GTK_WINDOW_TOPLEVEL); + g_signal_connect (G_OBJECT (top_vbox), "delete-event", + G_CALLBACK (hide_printarea_on_delete), NULL); + gtk_container_add (GTK_CONTAINER (top_vbox), main_vbox); + + +#else gtk_box_pack_start (GTK_BOX (top_vbox), main_vbox, TRUE, TRUE, 0); + +#endif GtkWidget *score_and_scroll_hbox = gtk_hbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (main_vbox), score_and_scroll_hbox, TRUE, TRUE, 0); - gui->printarea = gtk_drawing_area_new (); - gtk_box_pack_start (GTK_BOX (score_and_scroll_hbox), gui->printarea, TRUE, + Denemo.printarea = gtk_drawing_area_new (); + gtk_box_pack_start (GTK_BOX (score_and_scroll_hbox), Denemo.printarea, TRUE, TRUE, 0); GtkAdjustment *printvadjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 2.0, 1.0, 4.0, 1.0)); g_signal_connect (G_OBJECT (printvadjustment), "value_changed", G_CALLBACK (printvertical_scroll), gui); - gui->printvscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (printvadjustment)); - gtk_box_pack_start (GTK_BOX (score_and_scroll_hbox), gui->printvscrollbar, FALSE, + Denemo.printvscrollbar = gtk_vscrollbar_new (GTK_ADJUSTMENT (printvadjustment)); + gtk_box_pack_start (GTK_BOX (score_and_scroll_hbox), Denemo.printvscrollbar, FALSE, TRUE, 0); GtkAdjustment *printhadjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 2.0, 1.0, 4.0, 1.0)); g_signal_connect (G_OBJECT (printhadjustment), "value_changed", G_CALLBACK (printhorizontal_scroll), gui); - gui->printhscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (printhadjustment)); - gtk_box_pack_start (GTK_BOX (main_vbox), gui->printhscrollbar, FALSE, TRUE, 0); + Denemo.printhscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (printhadjustment)); + gtk_box_pack_start (GTK_BOX (main_vbox), Denemo.printhscrollbar, FALSE, TRUE, 0); - g_signal_connect (G_OBJECT (gui->printarea), "configure_event", + g_signal_connect (G_OBJECT (Denemo.printarea), "configure_event", G_CALLBACK (printarea_configure_event), gui); - g_signal_connect (G_OBJECT (gui->printarea), "expose_event", + g_signal_connect (G_OBJECT (Denemo.printarea), "expose_event", G_CALLBACK (printarea_expose_event), gui); - g_signal_connect (G_OBJECT (gui->printarea), "button_release_event", + g_signal_connect (G_OBJECT (Denemo.printarea), "button_release_event", G_CALLBACK (printarea_button_release), gui); - g_signal_connect (G_OBJECT (gui->printarea), "motion_notify_event", + g_signal_connect (G_OBJECT (Denemo.printarea), "motion_notify_event", G_CALLBACK (printarea_motion_notify), gui); - g_signal_connect (G_OBJECT (gui->printarea), "button_press_event", + g_signal_connect (G_OBJECT (Denemo.printarea), "button_press_event", G_CALLBACK (printarea_button_press), gui); - gtk_widget_add_events (gui->printarea, (GDK_EXPOSURE_MASK + gtk_widget_add_events (Denemo.printarea, (GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK /* | GDK_LEAVE_NOTIFY_MASK */ | GDK_BUTTON_PRESS_MASK @@ -1447,7 +1460,7 @@ void install_printpreview(DenemoGUI *gui, GtkWidget *top_vbox){ gtk_widget_show_all(main_vbox); - gtk_widget_hide(main_vbox); + gtk_widget_hide(top_vbox); } @@ -506,6 +506,11 @@ toggle_print_view (GtkAction *action, gpointer param); static void toggle_scoretitles (GtkAction *action, gpointer param); + +gint hide_printarea_on_delete(void) { + activate_action("/MainMenu/ViewMenu/"TogglePrintView_STRING); + return TRUE; +} static void toggle_page_view(void) { @@ -597,7 +602,7 @@ void toggle_to_drawing_area(gboolean show) { TOG2("/MainMenu", mainmenu); TOG3(gtk_widget_get_parent(Denemo.console), console_view, "/MainMenu/ViewMenu/"ToggleConsoleView_STRING); - TOG3(gtk_widget_get_parent(gtk_widget_get_parent(Denemo.gui->printarea)), print_view, "/MainMenu/ViewMenu/"TogglePrintView_STRING); + TOG3(gtk_widget_get_parent(gtk_widget_get_parent(Denemo.printarea)), print_view, "/MainMenu/ViewMenu/"TogglePrintView_STRING); TOG3(Denemo.gui->buttonboxes, scoretitles, "/MainMenu/ViewMenu/"ToggleScoreTitles_STRING); TOG3(Denemo.playback_control, playback_control, "/MainMenu/ViewMenu/"TogglePlaybackControls_STRING); TOG3(Denemo.midi_in_control, midi_in_control, "/MainMenu/ViewMenu/"ToggleMidiInControls_STRING); @@ -1780,8 +1785,8 @@ static void get_drag_offset(GtkWidget *dialog, gint response_id, GtkLabel *label if(response_id < 0) gtk_main_quit(); gint offsetx, offsety; - offsetx = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsetx"); - offsety = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsety"); + offsetx = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "offsetx"); + offsety = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "offsety"); gchar *text = g_strdup_printf("Offset now %d %d. Drag again in the print window to change\nOr click OK to apply the position shift", offsetx, offsety); gtk_label_set_text(label, text); g_free(text); @@ -1792,7 +1797,7 @@ static void get_drag_pad(GtkWidget *dialog, gint response_id, GtkLabel *label) { if(response_id < 0) gtk_main_quit(); gint padding; - padding = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "padding"); + padding = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "padding"); gchar *text = g_strdup_printf("Padding now %d. Drag again in the print window to change\nOr click OK to apply the padding to the graphical object belonging to the directive", padding); gtk_label_set_text(label, text); g_free(text); @@ -1804,14 +1809,14 @@ static void get_drag_pad(GtkWidget *dialog, gint response_id, GtkLabel *label) { or #f if no printarea or user cancels*/ SCM scheme_get_offset(void) { SCM x, y, ret; - if(Denemo.gui->printarea==NULL) + if(Denemo.printarea==NULL) return SCM_BOOL(FALSE); - if(g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offset-dialog")){ + if(g_object_get_data(G_OBJECT(Denemo.printarea), "offset-dialog")){ warningdialog("Already in a padding dialog"); return SCM_BOOL_F; } - gint offsetx = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsetx"); - gint offsety = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsety"); + gint offsetx = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "offsetx"); + gint offsety = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "offsety"); GtkWidget *dialog = gtk_dialog_new_with_buttons ("Select Offset in Print Window", @@ -1820,7 +1825,7 @@ SCM scheme_get_offset(void) { GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "offset-dialog", (gpointer)dialog); + g_object_set_data(G_OBJECT(Denemo.printarea), "offset-dialog", (gpointer)dialog); GtkWidget *vbox = gtk_vbox_new(FALSE, 8); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox, TRUE, TRUE, 0); @@ -1835,10 +1840,10 @@ SCM scheme_get_offset(void) { g_signal_connect(dialog, "response", G_CALLBACK(get_drag_offset), label); gtk_widget_show_all(dialog); gtk_main(); - offsetx = (intptr_t) g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsetx"); - offsety = (intptr_t) g_object_get_data(G_OBJECT(Denemo.gui->printarea), "offsety"); + offsetx = (intptr_t) g_object_get_data(G_OBJECT(Denemo.printarea), "offsetx"); + offsety = (intptr_t) g_object_get_data(G_OBJECT(Denemo.printarea), "offsety"); val = (intptr_t)g_object_get_data(G_OBJECT(dialog), "offset-response"); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "offset-dialog", NULL); + g_object_set_data(G_OBJECT(Denemo.printarea), "offset-dialog", NULL); gtk_widget_destroy(dialog); if(val == GTK_RESPONSE_ACCEPT) { x= scm_makfrom0str (g_strdup_printf("%.1f", offsetx/10.0)); @@ -1851,9 +1856,9 @@ SCM scheme_get_offset(void) { /* return a string representing the relative font size the user wishes to use*/ SCM scheme_get_relative_font_size(void) { - if(Denemo.gui->printarea==NULL) + if(Denemo.printarea==NULL) return SCM_BOOL(FALSE); - gchar *value = g_object_get_data(G_OBJECT(Denemo.gui->printarea), "font-size"); + gchar *value = g_object_get_data(G_OBJECT(Denemo.printarea), "font-size"); if(value) g_free(value); value = string_dialog_entry (Denemo.gui, "Font Size", "Give a value (+/-) to adjust font size by", "0"); @@ -1861,7 +1866,7 @@ SCM scheme_get_relative_font_size(void) { value = g_strdup("0"); gchar *clean = g_strdup_printf("%d", atoi(value)); g_free(value); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "font-size", (gpointer)clean); + g_object_set_data(G_OBJECT(Denemo.printarea), "font-size", (gpointer)clean); return scm_from_locale_stringn (clean, strlen(clean)); } void get_clipboard(GtkAction * action, DenemoScriptParam *param); @@ -1888,14 +1893,14 @@ SCM scheme_get_text_selection (void) { or #f if no printarea or user cancels*/ SCM scheme_get_padding(void) { SCM pad, ret; - if(Denemo.gui->printarea==NULL) + if(Denemo.printarea==NULL) return SCM_BOOL(FALSE); - if(g_object_get_data(G_OBJECT(Denemo.gui->printarea), "pad-dialog")){ + if(g_object_get_data(G_OBJECT(Denemo.printarea), "pad-dialog")){ warningdialog("Already in a padding dialog"); return SCM_BOOL_F; } - gint padding = (intptr_t)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "padding"); + gint padding = (intptr_t)g_object_get_data(G_OBJECT(Denemo.printarea), "padding"); GtkWidget *dialog = gtk_dialog_new_with_buttons ("Select Padding in Print Window", GTK_WINDOW (Denemo.window), @@ -1903,7 +1908,7 @@ SCM scheme_get_padding(void) { GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "pad-dialog", (gpointer)dialog); + g_object_set_data(G_OBJECT(Denemo.printarea), "pad-dialog", (gpointer)dialog); GtkWidget *vbox = gtk_vbox_new(FALSE, 8); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox, TRUE, TRUE, 0); @@ -1918,9 +1923,9 @@ SCM scheme_get_padding(void) { g_signal_connect(dialog, "response", G_CALLBACK(get_drag_pad), label); gtk_widget_show_all(dialog); gtk_main(); - padding = (intptr_t) g_object_get_data(G_OBJECT(Denemo.gui->printarea), "padding"); + padding = (intptr_t) g_object_get_data(G_OBJECT(Denemo.printarea), "padding"); val = (intptr_t)g_object_get_data(G_OBJECT(dialog), "pad-response"); - g_object_set_data(G_OBJECT(Denemo.gui->printarea), "pad-dialog", NULL); + g_object_set_data(G_OBJECT(Denemo.printarea), "pad-dialog", NULL); gtk_widget_destroy(dialog); if(val == GTK_RESPONSE_ACCEPT) { ret = scm_makfrom0str (g_strdup_printf("%d", padding/10)); @@ -7299,12 +7304,12 @@ toggle_action_menu (GtkAction * action, gpointer param) static void toggle_print_view (GtkAction *action, gpointer param) { - GtkWidget *w = gtk_widget_get_parent(gtk_widget_get_parent(Denemo.gui->printarea)); + GtkWidget *w = gtk_widget_get_toplevel(Denemo.printarea); if((!action) || GTK_WIDGET_VISIBLE(w)) gtk_widget_hide(w); else { gtk_widget_show(w); - if(((gint)g_object_get_data(G_OBJECT(Denemo.gui->printarea), "printviewupdate"))<Denemo.gui->changecount) + if(((gint)g_object_get_data(G_OBJECT(Denemo.printarea), "printviewupdate"))<Denemo.gui->changecount) refresh_print_view(TRUE); } return; @@ -7372,7 +7377,7 @@ toggle_console_view (GtkAction *action, gpointer param) void toggle_score_view (GtkAction *action, gpointer param) { - GtkWidget *w = gtk_widget_get_parent(Denemo.scorearea); + GtkWidget *w = gtk_widget_get_parent(gtk_widget_get_parent(Denemo.scorearea)); if((!action) || GTK_WIDGET_VISIBLE(w)) gtk_widget_hide(w); else { @@ -8101,8 +8106,11 @@ get_data_dir (), { Denemo.scorearea = gtk_drawing_area_new (); + GtkWidget *scorearea_topbox = gtk_vbox_new(FALSE, 1); + gtk_box_pack_start (GTK_BOX (main_vbox), scorearea_topbox, TRUE, TRUE, + 0); GtkWidget *score_and_scroll_hbox = gtk_hbox_new (FALSE, 1); - gtk_box_pack_start (GTK_BOX (main_vbox), score_and_scroll_hbox, TRUE, TRUE, + gtk_box_pack_start (GTK_BOX (scorearea_topbox), score_and_scroll_hbox, TRUE, TRUE, 0); gtk_widget_show (score_and_scroll_hbox); @@ -8150,8 +8158,8 @@ get_data_dir (), gtk_signal_connect (GTK_OBJECT (Denemo.hadjustment), "value_changed", GTK_SIGNAL_FUNC (horizontal_scroll), NULL); Denemo.hscrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (Denemo.hadjustment)); - gtk_box_pack_start (GTK_BOX (main_vbox), Denemo.hscrollbar, FALSE, TRUE, 0); - gtk_widget_show (Denemo.hscrollbar); + gtk_box_pack_start (GTK_BOX (scorearea_topbox), Denemo.hscrollbar, FALSE, TRUE, 0); + gtk_widget_show_all (scorearea_topbox); } @@ -8293,7 +8301,7 @@ newtab (GtkAction *action, gpointer param) { #endif - install_printpreview(gui, top_vbox); + install_printpreview(gui, main_vbox); //FIXME populate_opened_recent (gui); @@ -116,4 +116,5 @@ void ToggleReduceToDrawingArea (GtkAction * action, DenemoScriptParam *param); gchar *get_midi_control_command(guchar type, guchar value); gchar *get_midi_pitch_bend_command(gint value); void load_initdotdenemo(void); +gint hide_printarea_on_delete(void); #endif |