summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremiah Benham <jjbenham@chicagoguitar.com>2011-02-10 14:54:16 -0600
committerJeremiah Benham <jjbenham@chicagoguitar.com>2011-02-10 14:54:16 -0600
commit1519bcd61052e74976c8dc1215f9eb5e2f8d38a5 (patch)
tree7da24ef4cb8fb5763decc65a984370978f800a78 /src
parent27677214cba473396bfcb858359285024b142680 (diff)
parent495ff78e822abc91f2d4bc7a87f190a4f01a0f4a (diff)
Merge branch 'master' of git.sv.gnu.org:/srv/git/denemo
Diffstat (limited to 'src')
-rw-r--r--src/file.c8
-rw-r--r--src/print.c125
-rw-r--r--src/view.c64
-rw-r--r--src/view.h1
4 files changed, 110 insertions, 88 deletions
diff --git a/src/file.c b/src/file.c
index 4556cdd8..4d158cc8 100644
--- a/src/file.c
+++ b/src/file.c
@@ -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);
}
diff --git a/src/view.c b/src/view.c
index befc2eaf..9af67a6b 100644
--- a/src/view.c
+++ b/src/view.c
@@ -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);
diff --git a/src/view.h b/src/view.h
index 1cd5b4ee..c9b23dc3 100644
--- a/src/view.h
+++ b/src/view.h
@@ -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