Class: VRVirtualDesktopForm
- Inherits:
-
VRForm
- Object
- VRForm
- VRVirtualDesktopForm
- Includes:
- VRClosingSensitive, VRMenuUseable, VRTimerFeasible, VRTrayiconFeasible
- Defined in:
- lib/VRVirtualDesktopForm.rb
Overview
To do, add in list box control and send traces to it
Constant Summary collapse
- OBJECT_DB_ICON_ID =
1
- SCREEN_ICON_ID_BASE =
2
- SC_MINIMIZE =
0xF020
Class Method Summary collapse
-
.run_gui(restore) ⇒ Object
run this form.
Instance Method Summary collapse
-
#clean_tray ⇒ Object
clean the icon out of the tray.
-
#construct ⇒ Object
construct the form.
-
#exinit(restore, caption, icon_file, icon_path, tray_menu_additions = []) ⇒ Object
initialize this form.
-
#exit_clicked ⇒ Object
user clicked tray menu Exit.
-
#file_exit_clicked ⇒ Object
user clicked File | Exit.
-
#goto_tray ⇒ Object
enable the tray icon.
-
#handle_close ⇒ Object
common handler for exit menu selections.
-
#handle_exit ⇒ Object
handle exit of program by all methods.
-
#restore_clicked ⇒ Object
user clicked tray menu show ObjectDatabase.
-
#self_close ⇒ Object
user clicked close box.
-
#self_syscommand(message_type) ⇒ Object
Handler for system commands.
-
#self_traylbuttondown(iconid) ⇒ Object
this is called when left button is clicked on tray icon.
-
#self_trayrbuttonup(iconid) ⇒ Object
this is called when right button is clicked on tray icon.
-
#set_screen_name_clicked ⇒ Object
allow the user to set screen names.
-
#tray_clicked ⇒ Object
this is called when?.
-
#up_from_tray ⇒ Object
show the window from the tray.
-
#user_okays_close ⇒ Object
ask user if they are sure they want to quit.
- #windowUpdate_timer ⇒ Object
Class Method Details
.run_gui(restore) ⇒ Object
run this form
32 33 34 35 36 37 38 39 40 |
# File 'lib/VRVirtualDesktopForm.rb', line 32 def run_gui(restore) vrForm = VRLocalScreen.newform(nil, nil, VRVirtualDesktopForm) vrForm.exinit(restore).create.goto_tray begin VRLocalScreen. ensure vrForm.handle_exit end end |
Instance Method Details
#clean_tray ⇒ Object
clean the icon out of the tray
171 172 173 174 175 |
# File 'lib/VRVirtualDesktopForm.rb', line 171 def clean_tray $TRACE.debug 5, "cleaning tray" delete_trayicon(OBJECT_DB_ICON_ID) @virtual_desktops.delete_trayicons end |
#construct ⇒ Object
construct the form
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/VRVirtualDesktopForm.rb', line 46 def construct self.caption = @caption icon_filename = @icon_path + "/" + @icon_file $TRACE.debug 5, "icon filename = '#{icon_filename}'" @icon = VRLocalScreen.factory.iconfromfile(icon_filename) @window_manager = Win32::WindowManager.new @virtual_desktops = Win32::VirtualDesktops.new(self, @icon_path, SCREEN_ICON_ID_BASE, 6, @window_manager) $TRACE.debug 5, "at start windows = " + @window_manager.get_all_windows.values.map{|w| w.to_s}.join(",") # attempt to restore windows if @restore then begin @virtual_desktops.restore rescue Errno::ENOENT # ignore this error end end # add any windows that weren't added on restore (if restore happened @window_manager.get_all_windows.each_value do |window| $TRACE.debug 5, "checking window: #{window}" #window.show unless @virtual_desktops.contains_window(window) $TRACE.debug 5, "adding window: #{window} to active desktop" @virtual_desktops.active_desktop.add_window(window) end end @virtual_desktops.save # set up menus fileMenu = ["&File", [ ["E&xit","file_exit"] ] ] = [fileMenu] setMenu newMenu.set() @tray_menu = newPopupMenu @tray_menu.set(@tray_menu_source) addTimer 500,"windowUpdate" # used add handler for minimize wm_syscommand = WMsg::WM_COMMAND+1 addHandler wm_syscommand,"syscommand",MSGTYPE::ARGWINT,nil acceptEvents [wm_syscommand] end |
#exinit(restore, caption, icon_file, icon_path, tray_menu_additions = []) ⇒ Object
initialize this form
101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/VRVirtualDesktopForm.rb', line 101 def exinit(restore, caption, icon_file, icon_path, =[]) @exited = false @restore = restore @caption = caption @icon_file = icon_file @icon_path = icon_path @tray_menu_source = [ ["Set Screen Name...", "set_screen_name"], ["Exit", "exit"] ] @tray_menu_source.insert(0, ) unless .empty? self end |
#exit_clicked ⇒ Object
user clicked tray menu Exit
225 226 227 |
# File 'lib/VRVirtualDesktopForm.rb', line 225 def exit_clicked handle_close end |
#file_exit_clicked ⇒ Object
user clicked File | Exit
207 208 209 |
# File 'lib/VRVirtualDesktopForm.rb', line 207 def file_exit_clicked handle_close end |
#goto_tray ⇒ Object
enable the tray icon
147 148 149 150 151 152 153 |
# File 'lib/VRVirtualDesktopForm.rb', line 147 def goto_tray #return unless @displayed @virtual_desktops.create_trayicons create_trayicon(@icon.hicon, @caption, OBJECT_DB_ICON_ID) self.hide @displayed = false end |
#handle_close ⇒ Object
common handler for exit menu selections
240 241 242 243 244 245 |
# File 'lib/VRVirtualDesktopForm.rb', line 240 def handle_close if user_okays_close then handle_exit self.close end end |
#handle_exit ⇒ Object
handle exit of program by all methods
249 250 251 252 253 254 255 |
# File 'lib/VRVirtualDesktopForm.rb', line 249 def handle_exit return if @exited @exited = true @virtual_desktops.handle_exit clean_tray end |
#restore_clicked ⇒ Object
user clicked tray menu show ObjectDatabase
219 220 221 |
# File 'lib/VRVirtualDesktopForm.rb', line 219 def restore_clicked up_from_tray end |
#self_close ⇒ Object
user clicked close box
259 260 261 262 263 264 265 266 |
# File 'lib/VRVirtualDesktopForm.rb', line 259 def self_close # handle user clicks close box if user_okays_close then clean_tray else SKIP_DEFAULTHANDLER end end |
#self_syscommand(message_type) ⇒ Object
Handler for system commands
122 123 124 125 126 127 128 129 |
# File 'lib/VRVirtualDesktopForm.rb', line 122 def self_syscommand() $TRACE.debug 5, "message_type = #{}" if == SC_MINIMIZE then $TRACE.debug 5, "going to tray" goto_tray SKIP_DEFAULTHANDLER end end |
#self_traylbuttondown(iconid) ⇒ Object
this is called when left button is clicked on tray icon. we display the tray menu
181 182 183 184 185 186 187 188 |
# File 'lib/VRVirtualDesktopForm.rb', line 181 def (iconid) case iconid when OBJECT_DB_ICON_ID showPopup @tray_menu else @virtual_desktops.change_desktop(iconid) end end |
#self_trayrbuttonup(iconid) ⇒ Object
this is called when right button is clicked on tray icon
193 194 195 196 197 198 199 200 |
# File 'lib/VRVirtualDesktopForm.rb', line 193 def (iconid) case iconid when OBJECT_DB_ICON_ID showPopup @tray_menu else @virtual_desktops.move_window(iconid) end end |
#set_screen_name_clicked ⇒ Object
allow the user to set screen names
213 214 215 |
# File 'lib/VRVirtualDesktopForm.rb', line 213 def set_screen_name_clicked @virtual_desktops.set_screen_name end |
#tray_clicked ⇒ Object
this is called when?
140 141 142 |
# File 'lib/VRVirtualDesktopForm.rb', line 140 def tray_clicked goto_tray end |
#up_from_tray ⇒ Object
show the window from the tray
158 159 160 161 162 163 164 165 166 |
# File 'lib/VRVirtualDesktopForm.rb', line 158 def up_from_tray return if @displayed # delete_trayicon(1) myexstyle = self.exwinstyle myexstyle.ws_ex_toolwindow = false myexstyle.ws_ex_appwindow = true self.show @displayed = true end |
#user_okays_close ⇒ Object
ask user if they are sure they want to quit
233 234 235 236 |
# File 'lib/VRVirtualDesktopForm.rb', line 233 def user_okays_close ret = ("Are you sure you want to quit?", "Exit?", VRMessageBoxConst::MB_YESNO) ret == VRDialogComponent::IDYES end |
#windowUpdate_timer ⇒ Object
131 132 133 |
# File 'lib/VRVirtualDesktopForm.rb', line 131 def windowUpdate_timer @virtual_desktops.periodic_timer end |