summaryrefslogtreecommitdiff
path: root/themes/SuSE/main.inc
diff options
context:
space:
mode:
Diffstat (limited to 'themes/SuSE/main.inc')
-rw-r--r--themes/SuSE/main.inc221
1 files changed, 221 insertions, 0 deletions
diff --git a/themes/SuSE/main.inc b/themes/SuSE/main.inc
new file mode 100644
index 0000000..3c0adfe
--- /dev/null
+++ b/themes/SuSE/main.inc
@@ -0,0 +1,221 @@
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+%
+% Main menu (boot entry + boot options + panel).
+%
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% Create new main window.
+%
+% ( ) ==> ( window )
+%
+/window.main {
+ widget.size array
+ dup .type t_main put
+ dup .font font.normal put
+ dup .ed.font font.normal put
+ dup .color.fg boot.text.normal put
+
+} def
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% Initialize main window.
+%
+% ( window ) ==> ( )
+%
+/main.init {
+ pop
+} def
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% Redraw main window.
+% (E.g. after selecting a new language.)
+%
+% ( window ) ==> ( )
+%
+/main.redraw {
+ boot.text.options setcolor
+ window.current .font get setfont
+ frame3.pos moveto
+ currentpoint 200 fontheight image
+ txt_bootoptions show
+
+ redrawmenu
+ /keepbootoptions 1 def
+ menu.entry true MenuSelect
+ /keepbootoptions .undef def
+
+ panel.show
+} def
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% Draw main window.
+%
+% ( window ) ==> ( )
+%
+/main.show {
+ window.push
+
+ /menu.shift 0 def
+ /menu.visible.entries menu.texts length menu.max.entries min def
+
+ % get index of default entry
+ /menu.entry 0 def
+ 0 1 menu.texts length 1 sub {
+ dup menu.texts exch get menu.dentry eq { /menu.entry exch def exit } { pop } ifelse
+ } for
+
+ menu.entry menu.visible.entries sub 0 ge {
+ /menu.shift menu.entry menu.texts length menu.visible.entries sub min def
+ } if
+
+ frame2.pos moveto prog_frame_color dup prog_frame_color2 frame2.size drawborder3
+
+ menu.visible.entries menu.texts length lt menu.scrollbar and {
+ /menu.bar.width frame1.size pop frame4.size pop sub def
+
+ -1 settransparentcolor
+
+ frame4.pos moveto black dup frame4.size drawborder
+ frame4.pos moveto
+ ms.up ms.size image
+ frame4.pos moveto frame4.size exch pop 0 exch ms.size exch pop 0 add sub rmoveto
+ ms.down ms.size image
+
+ /menu.sb.x frame4.pos pop 1 add def
+ /menu.sb.y frame4.pos exch pop 22 add def
+ /menu.sb.width frame4.size pop 2 sub def
+ /menu.sb.height frame4.size exch pop 22 2 mul sub def
+
+ menu.sb.x menu.sb.y 1 sub moveto
+ menu.sb.x menu.sb.width add menu.sb.y 1 sub lineto
+
+ menu.sb.x menu.sb.y menu.sb.height add moveto
+ menu.sb.x menu.sb.width add menu.sb.y menu.sb.height add lineto
+ } if
+
+ boot.text.options setcolor
+
+ window.current .font get setfont
+
+ frame3.pos moveto
+ txt_bootoptions show
+
+ /boot.ed.width frame2.size pop 10 sub def
+ /boot.ed.height fontheight 2 add def
+
+ /boot.ed [
+ frame2.pos exch 5 add exch 4 add
+ over over moveto boot.ed.width boot.ed.height savescreen
+ boot.buf
+ boot.buf.size
+ 0
+ 0
+ 0
+ ] def
+
+ window.current .ed boot.ed put
+
+ redrawmenu
+ menu.entry true MenuSelect
+
+ % find default splash mode
+ 0 1 splash.options length 1 sub {
+ splash.options over get menu.args menu.entry get exch strstr {
+ /splash.default exch def
+ } {
+ pop
+ } ifelse
+ } for
+
+ panel.init
+
+ "main" help.setcontext
+
+} def
+
+
+% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+% Handle keyboard input.
+%
+% ( key_in ) ==> ( key_out )
+%
+/main.input {
+ dup 0 eq { return } if
+
+ % handle panel entries
+ panel.input
+
+ dup keyF10 eq {
+ power_off
+ pop 0
+ } if
+
+ dup keyEsc eq { exit_popup pop 0 } if
+
+ dup keyEnter eq {
+ /window.action actStart def
+ pop 0
+ } if
+
+ dup keyUp eq {
+ menu.entry 0 gt {
+ menu.entry false MenuSelect
+ menu.entry menu.shift eq {
+ /menu.shift menu.shift 1 sub def redrawmenu
+ } if
+ /menu.entry menu.entry 1 sub def
+ menu.entry true MenuSelect
+ } if
+ pop 0
+ } if
+
+ dup keyDown eq {
+ menu.entry menu.texts length 1 sub lt {
+ menu.entry false MenuSelect
+ menu.visible.entries menu.entry menu.shift sub sub 1 eq {
+ /menu.shift menu.shift 1 add def redrawmenu
+ } if
+ /menu.entry menu.entry 1 add def
+ menu.entry true MenuSelect
+ } if
+ pop 0
+ } if
+
+ dup keyPgUp eq {
+ menu.entry 0 gt {
+ menu.entry false MenuSelect
+ /menu.entry 0 def
+ menu.shift 0 ne {
+ /menu.shift 0 def redrawmenu
+ } if
+ menu.entry true MenuSelect
+ } if
+ pop 0
+ } if
+
+ dup keyPgDown eq {
+ menu.entry menu.texts length 1 sub lt {
+ menu.entry false MenuSelect
+ /menu.entry menu.texts length 1 sub def
+ menu.texts length menu.visible.entries sub dup menu.shift ne {
+ /menu.shift exch def redrawmenu
+ } {
+ pop
+ } ifelse
+ menu.entry true MenuSelect
+ } if
+ pop 0
+ } if
+
+ dup 0 ne {
+ "opt" help.setcontext
+ } if
+
+} def
+
+