diff options
| author | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-24 22:26:32 -0400 |
|---|---|---|
| committer | Jeff Armstrong <jeffrey.armstrong@approximatrix.com> | 2011-07-24 22:26:32 -0400 |
| commit | 5eaecae93f7ba32b6bec9515dfa465130bc8b808 (patch) | |
| tree | 8eccbc1aafdbffc2684b43e77cffa0f9dbe7ecbd /example/simple.py | |
| parent | fce2b435d228d240e24656d6baf47f7d6022b730 (diff) | |
| download | gempy-5eaecae93f7ba32b6bec9515dfa465130bc8b808.tar.gz gempy-5eaecae93f7ba32b6bec9515dfa465130bc8b808.zip | |
Added VDI routines. Added proper resource handling, some menu library code, and object library code.
Diffstat (limited to 'example/simple.py')
| -rw-r--r-- | example/simple.py | 119 |
1 files changed, 81 insertions, 38 deletions
diff --git a/example/simple.py b/example/simple.py index 8cfc487..aa91184 100644 --- a/example/simple.py +++ b/example/simple.py @@ -1,39 +1,82 @@ -import gem
-
-class AppMessageEvent(gem.MessageEvent):
- def __init__(self,app):
- gem.MessageEvent.__init__(self)
-
- self.app = app
- self.window = app.windows[0]
-
- def process(self):
-
- # First call the super's process()
- gem.MessageEvent.process(self)
-
- if self.message == gem.WM_CLOSED:
- self.app.event_processing = False
-
- elif self.message == gem.WM_TOPPED:
- self.window.top()
-
- elif self.message == gem.WM_MOVED or self.message == gem.WM_SIZED:
- rect = (self.get_word(4),self.get_word(5),self.get_word(6),self.get_word(7))
- self.window.resize(rect)
-
-def start_app():
-
- app = gem.Application()
-
- w = app.new_window((60,60,500,300),'Awesome!')
-
- app.message_event = AppMessageEvent(app)
-
- app.event_loop()
-
- app.destroy()
-
-
-if __name__ == "__main__":
+import gem +import gem.vdi + +# Taken from resource headers +MENU = 0 +M_ABOUT = 7 +M_QUIT = 16 +ABOUT = 1 +B_ABOUT_OK = 1 + +def redraw(window): + + window.begin_update() + vh = window.graphics_handle() + gem.vdi.vsf_color(vh,0) + + for r in window.get_invalid_rectangles(): + todraw = window.intersect_work_area(r) + if todraw is not None: + gem.vdi.vs_clip(vh, True, todraw) + gem.vdi.bar(vh,todraw) + gem.vdi.vs_clip(vh, False, todraw) + + window.end_update() + +class AppMessageEvent(gem.MessageEvent): + def __init__(self,app): + gem.MessageEvent.__init__(self) + + self.app = app + self.window = app.windows[0] + + def handle_menu(self,item): + if item == M_QUIT: + self.app.send_message((gem.WM_CLOSED, 0, 0, self.window.id)) + + elif item == M_ABOUT: + dlg = self.app.get_resource_address(gem.R_OBJECT,ABOUT) + self.app.draw_object(dlg,2) + self.app.form_do(dlg) + + def process(self): + + # First call the super's process() + gem.MessageEvent.process(self) + + if self.message == gem.WM_CLOSED: + self.app.event_processing = False + + elif self.message == gem.WM_TOPPED: + self.window.top() + + elif self.message == gem.WM_MOVED or self.message == gem.WM_SIZED: + rect = (self.get_word(4),self.get_word(5),self.get_word(6),self.get_word(7)) + self.window.resize(rect) + + elif self.message == gem.WM_REDRAW: + redraw(self.window) + + # Menu handling + elif self.message == gem.MN_SELECTED: + self.handle_menu(self.get_word(4)) + +def start_app(): + + app = gem.Application() + + app.load_resource("simple.rsc") + + app.set_menu(MENU) + + w = app.new_window((60,60,500,300),'Awesome!') + + app.message_event = AppMessageEvent(app) + + app.event_loop() + + app.destroy() + + +if __name__ == "__main__": start_app()
\ No newline at end of file |
