Revision: 56604
http://sourceforge.net/p/brlcad/code/56604
Author: vladbogo
Date: 2013-08-05 21:19:42 +0000 (Mon, 05 Aug 2013)
Log Message:
-----------
Implemented and added the cmd_hook to the display manager.
Modified Paths:
--------------
brlcad/trunk/src/mged/dm-qt.c
Modified: brlcad/trunk/src/mged/dm-qt.c
===================================================================
--- brlcad/trunk/src/mged/dm-qt.c 2013-08-05 21:12:19 UTC (rev 56603)
+++ brlcad/trunk/src/mged/dm-qt.c 2013-08-05 21:19:42 UTC (rev 56604)
@@ -35,6 +35,37 @@
extern void dm_var_init(struct dm_list *initial_dm_list); /*
defined in attach.c */
+static void
+dirty_hook(void)
+{
+ dirty = 1;
+}
+
+
+static void
+zclip_hook(void)
+{
+ fastf_t bounds[6] = { GED_MIN, GED_MAX, GED_MIN, GED_MAX, GED_MIN, GED_MAX
};
+
+ view_state->vs_gvp->gv_zclip = dmp->dm_zclip;
+ dirty_hook();
+
+ if (dmp->dm_zclip) {
+ bounds[4] = -1.0;
+ bounds[5] = 1.0;
+ }
+
+ DM_SET_WIN_BOUNDS(dmp, bounds);
+}
+
+struct bu_structparse qt_vparse[] = {
+ {"%g", 1, "bound", DM_O(dm_bound), dirty_hook,
NULL, NULL},
+ {"%d", 1, "useBound", DM_O(dm_boundFlag), dirty_hook, NULL, NULL},
+ {"%d", 1, "zclip", DM_O(dm_zclip), zclip_hook,
NULL, NULL},
+ {"%d", 1, "debug", DM_O(dm_debugLevel),
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL},
+ {"", 0, NULL, 0,
BU_STRUCTPARSE_FUNC_NULL, NULL, NULL}
+};
+
/*
This routine is being called from doEvent() to handle Expose events.
*/
@@ -52,13 +83,54 @@
return TCL_OK;
}
+static int
+qt_dm(int argc, const char *argv[])
+{
+ if (BU_STR_EQUAL(argv[0], "set")) {
+ struct bu_vls vls = BU_VLS_INIT_ZERO;
+
+ if (argc < 2) {
+ /* Bare set command, print out current settings */
+ bu_vls_struct_print2(&vls, "dm_qt internal variables", qt_vparse,
(const char *)dmp);
+ } else if (argc == 2) {
+ bu_vls_struct_item_named(&vls, qt_vparse, argv[1], (const char
*)dmp, COMMA);
+ } else {
+ struct bu_vls tmp_vls = BU_VLS_INIT_ZERO;
+ int ret;
+
+ bu_vls_printf(&tmp_vls, "%s=\"", argv[1]);
+ bu_vls_from_argv(&tmp_vls, argc-2, (const char **)argv+2);
+ bu_vls_putc(&tmp_vls, '\"');
+ ret = bu_struct_parse(&tmp_vls, qt_vparse, (char *)dmp);
+ bu_vls_free(&tmp_vls);
+ if (ret < 0) {
+ bu_vls_free(&vls);
+ return TCL_ERROR;
+ }
+ }
+
+ Tcl_AppendResult(INTERP, bu_vls_addr(&vls), (char *)NULL);
+ bu_vls_free(&vls);
+
+ return TCL_OK;
+ }
+
+ return common_dm(argc, argv);
+}
+
+
int
Qt_dm_init(struct dm_list *o_dm_list,
int argc,
const char *argv[])
{
+ struct bu_vls vls = BU_VLS_INIT_ZERO;
+
dm_var_init(o_dm_list);
+ /* register application provided routines */
+ cmd_hook = qt_dm;
+
Tk_DeleteGenericHandler(doEvent, (ClientData)NULL);
if ((dmp = dm_open(INTERP, DM_TYPE_QT, argc-1, argv)) == DM_NULL)
return TCL_ERROR;
@@ -71,6 +143,10 @@
(void)DM_CONFIGURE_WIN(dmp, 0);
+ bu_vls_printf(&vls, "mged_bind_dm %s", bu_vls_addr(&pathName));
+ Tcl_Eval(INTERP, bu_vls_addr(&vls));
+ bu_vls_free(&vls);
+
return TCL_OK;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits