Revision: 75303
          http://sourceforge.net/p/brlcad/code/75303
Author:   starseeker
Date:     2020-04-08 18:31:43 +0000 (Wed, 08 Apr 2020)
Log Message:
-----------
Wrap a few more Tk functions in context calls

Modified Paths:
--------------
    brlcad/trunk/include/dm.h
    brlcad/trunk/src/libdm/dm-X.c
    brlcad/trunk/src/libtclcad/dm_tcl.c

Modified: brlcad/trunk/include/dm.h
===================================================================
--- brlcad/trunk/include/dm.h   2020-04-08 17:37:43 UTC (rev 75302)
+++ brlcad/trunk/include/dm.h   2020-04-08 18:31:43 UTC (rev 75303)
@@ -230,7 +230,9 @@
 typedef void * dm_win;
 typedef void * dm_dpy;
 typedef long unsigned int dm_cmap;
+typedef long unsigned int dm_winid;
 typedef void * dm_visual_info;
+typedef unsigned long dm_pixmap;
 struct dm_context {
     /* Tk_MainWindow */
     dm_win (*dm_window_main)(dm *);
@@ -259,9 +261,11 @@
     /* Tk_Display */
     dm_dpy (*dm_display)(dm *, dm_win);
     /* Tk_GetPixmap */
-    // TODO
+    dm_pixmap (*dm_get_pixmap)(dm *, dm_dpy, dm_winid, dm_win, int width, int 
height);
+    /* Tk_FreePixmap */
+    void (*dm_free_pixmap)(dm *, dm_dpy, dm_pixmap);
     /* Tk_SetWindowBackground */
-    // TODO
+    void (*dm_window_set_bg)(dm *, dm_win, unsigned long);
 };
 
 __BEGIN_DECLS

Modified: brlcad/trunk/src/libdm/dm-X.c
===================================================================
--- brlcad/trunk/src/libdm/dm-X.c       2020-04-08 17:37:43 UTC (rev 75302)
+++ brlcad/trunk/src/libdm/dm-X.c       2020-04-08 18:31:43 UTC (rev 75303)
@@ -619,12 +619,7 @@
     (*context->dm_window_make_exist)(dmp, pubvars->xtkwin);
     pubvars->win = (*context->dm_window_id)(dmp, pubvars->xtkwin);
     dmp->dm_id = pubvars->win;
-    privars->pix =
-       Tk_GetPixmap(pubvars->dpy,
-                    pubvars->win,
-                    dmp->dm_width,
-                    dmp->dm_height,
-                    Tk_Depth(pubvars->xtkwin));
+    privars->pix = (Pixmap)(*context->dm_get_pixmap)(dmp, pubvars->dpy, 
pubvars->win, pubvars->xtkwin, dmp->dm_width, dmp->dm_height);
 #endif
 
     if (privars->is_trueColor) {
@@ -745,8 +740,7 @@
     (void)X_configureWin_guts(dmp, 1);
 
 #ifdef HAVE_TK
-    Tk_SetWindowBackground((Tk_Window)pubvars->xtkwin,
-                          privars->bg);
+    (*context->dm_window_set_bg)(dmp, pubvars->xtkwin, privars->bg);
     (*context->dm_window_map)(dmp, pubvars->xtkwin);
 #endif
 

Modified: brlcad/trunk/src/libtclcad/dm_tcl.c
===================================================================
--- brlcad/trunk/src/libtclcad/dm_tcl.c 2020-04-08 17:37:43 UTC (rev 75302)
+++ brlcad/trunk/src/libtclcad/dm_tcl.c 2020-04-08 18:31:43 UTC (rev 75303)
@@ -2751,6 +2751,29 @@
     return (dm_dpy)Tk_Display((Tk_Window)win);
 }
 
+/* Tk_GetPixmap */
+static dm_pixmap
+tk_get_pixmap(dm *UNUSED(dmp), dm_dpy disp, dm_winid win_id, dm_win xtkwin, 
int width, int height)
+{
+    Pixmap p = Tk_GetPixmap((Display *)disp, (Window)win_id, width, height, 
Tk_Depth((Tk_Window)xtkwin));
+    return (dm_pixmap)p;
+}
+
+/* Tk_FreePixmap */
+static void
+tk_free_pixmap(dm *UNUSED(dmp), dm_dpy disp, dm_pixmap pmap)
+{
+    Tk_FreePixmap((Display *)disp, (Pixmap)pmap);
+}
+
+/* Tk_SetWindowBackground */
+static void
+tk_window_set_bg(dm *UNUSED(dmp), dm_win win, unsigned long bg)
+{
+    Tk_SetWindowBackground((Tk_Window)win, bg);
+}
+
+
 struct dm_context dm_tk_context = {
     /* Tk_MainWindow -> dm_window_main */
     &tk_window_main,
@@ -2790,6 +2813,15 @@
 
     /* dm_display -> Tk_Display */
     &tk_display,
+
+    /* dm_get_pixmap -> Tk_GetPixmap */
+    &tk_get_pixmap,
+
+    /* dm_free_pixmap -> Tk_FreePixmap */
+    &tk_free_pixmap,
+
+    /* dm_window_set_bg -> Tk_SetWindowBackground */
+    &tk_window_set_bg
 };
 
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to