aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2015-08-26 19:52:44 +0200
committerCamil Staps2015-08-26 19:52:44 +0200
commit10dad61d654e6bbb771047400cfad9ef859d6c9a (patch)
treea53fd99ce6fccd8d70dd997e68a7648cff51424e
parentInvalidate window after WinDonePicture to force redraw (diff)
It is now possible to create an SDI Frame Window as opposed to an SDI Doc Window; this is needed for example in tut 11.3.2HEADmaster
-rw-r--r--Linux_C_12/cCrossCallMenus_121.c4
-rw-r--r--Linux_C_12/cCrossCall_121.c2
-rw-r--r--Linux_C_12/cCrossCallxDI_121.c19
3 files changed, 16 insertions, 9 deletions
diff --git a/Linux_C_12/cCrossCallMenus_121.c b/Linux_C_12/cCrossCallMenus_121.c
index af9163f..294110f 100644
--- a/Linux_C_12/cCrossCallMenus_121.c
+++ b/Linux_C_12/cCrossCallMenus_121.c
@@ -286,6 +286,8 @@ void EvalCcRqINSERTMENU (CrossCallInfo *pcci)
{
printf("Adding to a menu bar.\n");
GtkWidget *frame = gtk_widget_get_parent(gtk_widget_get_parent(parent_menu));
+ if (!G_IS_OBJECT(frame))
+ frame = gtk_widget_get_parent(parent_menu);
accel_group = ((GtkAccelGroup*)gtk_accel_groups_from_object (G_OBJECT(frame))->data);
}
else
@@ -298,7 +300,7 @@ void EvalCcRqINSERTMENU (CrossCallInfo *pcci)
root_menu = gtk_menu_item_new_with_mnemonic(title);
gtk_widget_set_sensitive(root_menu, (gboolean) pcci->p1);
- gtk_widget_show_all (root_menu);
+ gtk_widget_show (root_menu);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), sub_menu);
diff --git a/Linux_C_12/cCrossCall_121.c b/Linux_C_12/cCrossCall_121.c
index 37bc4e0..a06438a 100644
--- a/Linux_C_12/cCrossCall_121.c
+++ b/Linux_C_12/cCrossCall_121.c
@@ -216,7 +216,7 @@ void HandleCleanRequest (CrossCallInfo * pcci)
if (action == NULL)
{ /* Cross call request code not installed. */
- /*printf("\'HandleCleanRequest\' got uninstalled CcRq request code from Haskell: %d\n", pcci->mess);*/
+ printf("\'HandleCleanRequest\' got uninstalled CcRq request code from Clean: %d\n", pcci->mess);
exit(1);
}
else
diff --git a/Linux_C_12/cCrossCallxDI_121.c b/Linux_C_12/cCrossCallxDI_121.c
index 42225ff..5171bb6 100644
--- a/Linux_C_12/cCrossCallxDI_121.c
+++ b/Linux_C_12/cCrossCallxDI_121.c
@@ -14,6 +14,7 @@
#include "cCrossCallxDI_121.h"
#include "cCrossCall_121.h"
#include "cCCallWindows_121.h"
+#include "cCrossCallWindows_121.h"
/* Global data with external references:
@@ -250,12 +251,10 @@ static gboolean frame_key_release_handler(GtkWidget *widget, GdkEventKey *event,
void EvalCcRqCREATESDIFRAMEWINDOW (CrossCallInfo *pcci) /* accept file open; frame ptr, menubar results. */
{
GtkWidget *window, *menuBar, *box;
+ GtkAccelGroup *accel_group;
printf("EvalCcRqCREATESDIFRAMEWINDOW\n");
- /* Create the menubar. */
- menuBar = gtk_menu_bar_new();
-
/* Create the window. */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "focus-in-event",
@@ -287,11 +286,15 @@ void EvalCcRqCREATESDIFRAMEWINDOW (CrossCallInfo *pcci) /* accept file open; fra
GTK_SIGNAL_FUNC(frame_drag_data_handler), NULL);
}
- gtk_window_add_accel_group (GTK_WINDOW (window), gtk_accel_group_new());
+ /* Create accel_group */
+ accel_group = gtk_accel_group_new();
+ gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
+
+ /* Create the menubar. */
+ menuBar = gtk_menu_bar_new();
+ gtk_container_add(GTK_CONTAINER(window), menuBar);
- box = gtk_vbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(window), box);
- gtk_box_pack_start(GTK_BOX(box), menuBar, FALSE, FALSE, 0);
+ gtk_widget_show(GTK_WIDGET(window));
gtk_widget_show(menuBar);
MakeReturn2Cci (pcci, (int64_t) window, (int64_t) menuBar);
@@ -604,6 +607,8 @@ OS InstallCrossCallxDI (OS ios)
AddCrossCallEntry (newTable, CcRqCREATETOOLBARSEPARATOR, EvalCcRqCREATETOOLBARSEPARATOR);
AddCrossCallEntries (gCrossCallProcedureTable, newTable);
+ ios = InstallCrossCallWindows(ios);
+
return ios;
}