common dialog box concepts

by Nate Hekman on February 11, 2008

Over the next few weeks I’m going to look at a few concepts you’ll find in many GeoStudio dialog boxes that may not be immediately obvious.

[By the way, is “dialog box” a term everyone understands?  Or is it just programmer-speak?  It seems rather old-fashioned to me but I don’t know what better to call the things…  Leave me a comment if you do.]

Let’s start by taking a look at KeyIn Materials.

KeyIn Materials: a typical dialog box

KeyIn Materials is a good example because it demonstrates many features that are common across many other dialog boxes. 

I’ll go through some of the simpler ideas first to get them out of the way.  If you’re already aware of these, bear with me and we’ll get to the good stuff soon.


Use descriptive namesAll objects in GeoStudio 2007 are named.  That’s a great (and long overdue in my opinion) step forward compared to previous versions, where objects were numbered instead.  Object names must be unique, but otherwise there aren’t many restrictions on them, so be descriptive!

The names are used wherever one object links to another (e.g., a material linking to a function), in View Object Information, in reports, and in Sketch Text.


Look for the resizing corner on most dialogs.Most of our dialog boxes are resizeable.  We design them to fit a small laptop screen (800×600) but if you have a larger monitor you may benefit by making some of the dialogs larger too–you’ll see more items in the lists and longer names or descriptions.

Dialogs and other windows will also remember their last size and position so you won’t have to resize them every time.


Try changing the colour of a material and it changes immediately on screen.We’ve moved away from having OK & Cancel buttons and made our windows “live”.  As soon as you make a change you see that change reflected in your drawing.

That makes it easier to see the repercussions of any edits you make.  It also avoids confusion with the red ‘X’–many version 6 users didn’t understand why clicking the ‘X’ would lose all their changes (they thought it should work like an OK button but it’s really a Cancel button).


Click the arrow to see a list of actions you can undo, or click Undo to undo the last one.Dialogs support multiple levels of Undo and Redo.  While you’re in the dialog, undo (or redo) your most recent changes (up to the limit you can specify in Tools – Options).  After you close the dialog all your dialog changes get rolled up into one action you can undo using the toolbar or menu Edit – Undo.

To “cancel” changes you’ve made in a dialog you can just undo them one at a time, or you can close the dialog and hit Undo once.


Right-click on controls or lists for a menu of common operations.  If an item is listed in bold it’s the “default” item.  In a list, the default command happens when you double-click the list.  For a split button, the default command gets run when you click the main portion of the button.

Right-clicking brings up a context menu

Nested Dialogs

Many times several different menu items are related.  For example, you use KeyIn Materials to define a material, but that material may use a function, and functions are defined using KeyIn Functions. 

Previously you had to use KeyIn Functions first to create your function, then KeyIn Materials to pick it, then ultimately Draw Materials to assign it to a region.

The “…” button is a shortcut to another command.Now many dialogs give you a shortcut.  Often the shortcut isn’t all that well marked, to save precious screen real estate.  In KeyIn Materials, for example, you’ll see a button labeled simply “…”.  Clicking it takes you to the appropriate KeyIn Functions dialog.

And More…

Next week I’ll dig into some of the less obvious concepts, like Cloning and the Assigned button.

Have any tips of your own to share or a topic you’d like me to explore?  Leave a comment or drop me an email!

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>