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