Revision: 40666
http://brlcad.svn.sourceforge.net/brlcad/?rev=40666&view=rev
Author: bob1961
Date: 2010-09-24 13:44:05 +0000 (Fri, 24 Sep 2010)
Log Message:
-----------
Modified ged_obj.c to handle expose events a little better (i.e. not refreshing
if there are pending expose events).
Modified Paths:
--------------
brlcad/trunk/src/libtclcad/ged_obj.c
Modified: brlcad/trunk/src/libtclcad/ged_obj.c
===================================================================
--- brlcad/trunk/src/libtclcad/ged_obj.c 2010-09-24 13:38:56 UTC (rev
40665)
+++ brlcad/trunk/src/libtclcad/ged_obj.c 2010-09-24 13:44:05 UTC (rev
40666)
@@ -207,6 +207,14 @@
ged_func_ptr func,
const char *usage,
int maxargs);
+HIDDEN int go_handle_expose(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs);
+HIDDEN int go_handle_refresh(struct ged *gedp,
+ const char *name);
HIDDEN int go_idle_mode(struct ged *gedp,
int argc,
const char *argv[],
@@ -742,6 +750,7 @@
{"glob", (char *)0, MAXARGS, go_pass_through_func, ged_glob},
{"gqa", (char *)0, MAXARGS, go_pass_through_func, ged_gqa},
{"grid", "args", 6, go_view_func, ged_grid},
+ {"handle_expose", "vname count", MAXARGS, go_handle_expose,
GED_FUNC_PTR_NULL},
{"hide", (char *)0, MAXARGS, go_pass_through_func, ged_hide},
{"how", (char *)0, MAXARGS, go_pass_through_func, ged_how},
{"human", (char *)0, MAXARGS, go_pass_through_func, ged_human},
@@ -3489,7 +3498,7 @@
bu_vls_printf(&bindings, "bind %V <Enter> {focus %V; break}; ",
&gdvp->gdv_dmp->dm_pathName,
&gdvp->gdv_dmp->dm_pathName);
- bu_vls_printf(&bindings, "bind %V <Expose> {%V refresh %V; break}; ",
+ bu_vls_printf(&bindings, "bind %V <Expose> {%V handle_expose %V %%c;
break}; ",
&gdvp->gdv_dmp->dm_pathName,
&go_current_gop->go_name,
&gdvp->gdv_name);
@@ -3959,6 +3968,59 @@
}
HIDDEN int
+go_handle_expose(struct ged *gedp,
+ int argc,
+ const char *argv[],
+ ged_func_ptr func,
+ const char *usage,
+ int maxargs)
+{
+ int count;
+
+ /* initialize result */
+ bu_vls_trunc(&gedp->ged_result_str, 0);
+
+ /* must be wanting help */
+ if (argc == 1) {
+ bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
+ return GED_HELP;
+ }
+
+ if (argc != 3 ||
+ sscanf(argv[2], "%d", &count) != 1) {
+ bu_vls_printf(&gedp->ged_result_str, "Usage: %s %s, argv[2] - %s",
argv[0], usage, argv[2]);
+ return BRLCAD_ERROR;
+ }
+
+ /* There are more expose events to come so ignore this one */
+ if (count)
+ return BRLCAD_OK;
+
+ return go_handle_refresh(gedp, argv[1]);
+}
+
+HIDDEN int
+go_handle_refresh(struct ged *gedp,
+ const char *name)
+{
+ struct ged_dm_view *gdvp;
+
+ for (BU_LIST_FOR(gdvp, ged_dm_view, &go_current_gop->go_head_views.l)) {
+ if (!strcmp(bu_vls_addr(&gdvp->gdv_name), name))
+ break;
+ }
+
+ if (BU_LIST_IS_HEAD(&gdvp->l, &go_current_gop->go_head_views.l)) {
+ bu_vls_printf(&gedp->ged_result_str, "View not found - %s", name);
+ return BRLCAD_ERROR;
+ }
+
+ go_refresh_view(gdvp);
+
+ return BRLCAD_OK;
+}
+
+HIDDEN int
go_idle_mode(struct ged *gedp,
int argc,
const char *argv[],
@@ -6601,8 +6663,6 @@
const char *usage,
int maxargs)
{
- struct ged_dm_view *gdvp;
-
/* initialize result */
bu_vls_trunc(&gedp->ged_result_str, 0);
@@ -6617,19 +6677,7 @@
return BRLCAD_ERROR;
}
- for (BU_LIST_FOR(gdvp, ged_dm_view, &go_current_gop->go_head_views.l)) {
- if (!strcmp(bu_vls_addr(&gdvp->gdv_name), argv[1]))
- break;
- }
-
- if (BU_LIST_IS_HEAD(&gdvp->l, &go_current_gop->go_head_views.l)) {
- bu_vls_printf(&gedp->ged_result_str, "View not found - %s", argv[1]);
- return BRLCAD_ERROR;
- }
-
- go_refresh_view(gdvp);
-
- return BRLCAD_OK;
+ return go_handle_refresh(gedp, argv[1]);
}
HIDDEN int
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits