diff --git a/.gitignore b/.gitignore index 0e96f1c..3dd4e49 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ # src/.deps/ # src/Makefile # src/Makefile.in +/build/ diff --git a/CMakeLists.txt b/CMakeLists.txt index f49d5ac..6b56022 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,14 +19,29 @@ if (BIND_CONSOLE) add_compile_definitions(BIND_CONSOLE) endif (BIND_CONSOLE) +option(WINDOWED_MODE "Run windowed" OFF) +if (WINDOWED_MODE) + add_compile_definitions(G2X_BUILD_OPTION_WINDOWED_MODE) +endif () + +option(SCREEN_WIDTH "Screen / window width" OFF) +if (SCREEN_WIDTH) + add_compile_definitions(G2X_BUILD_OPTION_SCREEN_WIDTH=${SCREEN_WIDTH}) +endif () + +option(SCREEN_HEIGHT "Screen / window height" OFF) +if (SCREEN_HEIGHT) + add_compile_definitions(G2X_BUILD_OPTION_SCREEN_HEIGHT=${SCREEN_HEIGHT}) +endif () + set(CARD_ROOT "/media" CACHE STRING "Top-level filesystem directory") -set(PLATFORMS "pc, a320, gcw0, nanonote, rs90") +set(PLATFORMS "pc, a320, gcw0, rg350m, nanonote, rs90") set(PLATFORM "pc" CACHE STRING "One of the available platforms: ${PLATFORMS}" ) -set_property(CACHE PLATFORM PROPERTY STRINGS pc a320 gcw0 nanonote rs90) +set_property(CACHE PLATFORM PROPERTY STRINGS pc a320 gcw0 rg350m nanonote rs90) find_package(SDL REQUIRED) find_package(SDL_ttf REQUIRED) diff --git a/data/platform/gcw0/gmenu2x.conf b/data/platform/gcw0/gmenu2x.conf index 0a5712f..d5efe6a 100644 --- a/data/platform/gcw0/gmenu2x.conf +++ b/data/platform/gcw0/gmenu2x.conf @@ -3,6 +3,6 @@ menuClock=192 maxClock=1020 backlightTimeout=60 opkPlatforms="gcw0" -brightnessSysfs="/sys/class/backlight/board:backlight" -powerSupplySysfs="/sys/class/power_supply/act8600-charger" -batterySysfs="/sys/class/power_supply/jz-battery" +brightnessSysfs="/sys/class/backlight/pwm-backlight" +powerSupplySysfs="/sys/class/power_supply/usb" +batterySysfs="/sys/class/power_supply/battery" diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_DARK.png b/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_DARK.png deleted file mode 100644 index 7807040..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_DARK.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_LIGHT.png b/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_LIGHT.png deleted file mode 100644 index 272731b..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_CONSOLE_LIGHT.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BLUE.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BLUE.png deleted file mode 100644 index 33666b7..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BLUE.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BUBBLEGUM.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BUBBLEGUM.png deleted file mode 100644 index 9f5c689..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_BUBBLEGUM.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_DARK.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_DARK.png deleted file mode 100644 index d7bff05..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_DARK.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_GREY.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_GREY.png deleted file mode 100644 index 87f13ca..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_GREY.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_LEMON.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_LEMON.png deleted file mode 100644 index 51ffe85..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_LEMON.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_MINT.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_MINT.png deleted file mode 100644 index d0c287d..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_MINT.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_ORANGE.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_ORANGE.png deleted file mode 100644 index ec02339..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_ORANGE.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_STRAWBERRY.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_STRAWBERRY.png deleted file mode 100644 index 0576b92..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_STRAWBERRY.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_TOMATO.png b/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_TOMATO.png deleted file mode 100644 index 3a723db..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_DIAGONAL_TEXT_TOMATO.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_DARK.png b/data/platform/gcw0/skins/Default/wallpapers/320_GCW_DARK.png deleted file mode 100644 index 94280b0..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_DARK.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_LIGHT.png b/data/platform/gcw0/skins/Default/wallpapers/320_GCW_LIGHT.png deleted file mode 100644 index 347184d..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_LIGHT.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_WAVE2.png b/data/platform/gcw0/skins/Default/wallpapers/320_GCW_WAVE2.png deleted file mode 100644 index 209c3af..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/320_GCW_WAVE2.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/blue-zero.png b/data/platform/gcw0/skins/Default/wallpapers/blue-zero.png deleted file mode 100644 index 9f7cb41..0000000 Binary files a/data/platform/gcw0/skins/Default/wallpapers/blue-zero.png and /dev/null differ diff --git a/data/platform/gcw0/skins/Default/wallpapers/default.png b/data/platform/gcw0/skins/Default/wallpapers/default.png index f5809e0..d9cafe4 120000 --- a/data/platform/gcw0/skins/Default/wallpapers/default.png +++ b/data/platform/gcw0/skins/Default/wallpapers/default.png @@ -1 +1 @@ -320_GCW_DARK.png \ No newline at end of file +320_A_BLUE.png \ No newline at end of file diff --git a/data/platform/pc/gmenu2x.conf b/data/platform/pc/gmenu2x.conf new file mode 100644 index 0000000..d5efe6a --- /dev/null +++ b/data/platform/pc/gmenu2x.conf @@ -0,0 +1,8 @@ +videoBpp=32 +menuClock=192 +maxClock=1020 +backlightTimeout=60 +opkPlatforms="gcw0" +brightnessSysfs="/sys/class/backlight/pwm-backlight" +powerSupplySysfs="/sys/class/power_supply/usb" +batterySysfs="/sys/class/power_supply/battery" diff --git a/data/platform/pc/input.conf b/data/platform/pc/input.conf new file mode 100644 index 0000000..db4d9bc --- /dev/null +++ b/data/platform/pc/input.conf @@ -0,0 +1,10 @@ +accept=keyboard,306 +cancel=keyboard,308 +altleft=keyboard,9 +altright=keyboard,8 +menu=keyboard,27 +settings=keyboard,13 +up=keyboard,273 +down=keyboard,274 +left=keyboard,276 +right=keyboard,275 diff --git a/data/platform/pc/sections/applications/30_terminal b/data/platform/pc/sections/applications/30_terminal new file mode 100644 index 0000000..6a02151 --- /dev/null +++ b/data/platform/pc/sections/applications/30_terminal @@ -0,0 +1,6 @@ +title=Terminal +description=Disable graphic mode +icon=skin:icons/utilities-terminal.png +exec=/bin/busybox +params=sh -c 'clear; echo "The graphic mode is now disabled."; echo ""; echo "This is only useful for developers who want to test their graphical apps from telnet."; echo ""; echo "(Press START to exit to the launcher)"; read' +consoleapp=true diff --git a/data/platform/pc/sections/settings/10_poweroff b/data/platform/pc/sections/settings/10_poweroff new file mode 100644 index 0000000..4a7933d --- /dev/null +++ b/data/platform/pc/sections/settings/10_poweroff @@ -0,0 +1,6 @@ +title=Power Off +description=Shut down the system +launchmsg=Powering off +icon=skin:icons/poweroff.png +exec=/sbin/poweroff +editable=false diff --git a/data/platform/pc/sections/settings/20_reboot b/data/platform/pc/sections/settings/20_reboot new file mode 100644 index 0000000..a62f245 --- /dev/null +++ b/data/platform/pc/sections/settings/20_reboot @@ -0,0 +1,6 @@ +title=Reboot +description=Reboot the system +launchmsg=Rebooting +icon=skin:icons/reboot.png +exec=/sbin/reboot +editable=false diff --git a/data/platform/pc/sections/settings/40_alsamixer b/data/platform/pc/sections/settings/40_alsamixer new file mode 100644 index 0000000..215b6b8 --- /dev/null +++ b/data/platform/pc/sections/settings/40_alsamixer @@ -0,0 +1,6 @@ +title=Sound Mixer +description=Configure sound settings +icon=skin:icons/alsamixer.png +exec=/usr/bin/alsamixer +consoleapp=true +editable=false diff --git a/data/platform/pc/sections/settings/50_system_info b/data/platform/pc/sections/settings/50_system_info new file mode 100644 index 0000000..0ae9eec --- /dev/null +++ b/data/platform/pc/sections/settings/50_system_info @@ -0,0 +1,7 @@ +title=System Info +description=Info about the system +icon=skin:icons/about.png +exec=/usr/bin/dialog +params=--ok-label "Press START to exit" --no-shadow --msgbox "`/usr/bin/system_info`" 240 320 +consoleapp=true +editable=false diff --git a/data/platform/pc/skins/Default/imgs/buttons/accept.png b/data/platform/pc/skins/Default/imgs/buttons/accept.png new file mode 100644 index 0000000..bbcd608 Binary files /dev/null and b/data/platform/pc/skins/Default/imgs/buttons/accept.png differ diff --git a/data/platform/pc/skins/Default/imgs/buttons/cancel.png b/data/platform/pc/skins/Default/imgs/buttons/cancel.png new file mode 100644 index 0000000..eaf2cb2 Binary files /dev/null and b/data/platform/pc/skins/Default/imgs/buttons/cancel.png differ diff --git a/data/platform/pc/skins/Default/wallpapers/default.png b/data/platform/pc/skins/Default/wallpapers/default.png new file mode 120000 index 0000000..d9cafe4 --- /dev/null +++ b/data/platform/pc/skins/Default/wallpapers/default.png @@ -0,0 +1 @@ +320_A_BLUE.png \ No newline at end of file diff --git a/data/platform/rg350m/gmenu2x.conf b/data/platform/rg350m/gmenu2x.conf new file mode 100644 index 0000000..d5efe6a --- /dev/null +++ b/data/platform/rg350m/gmenu2x.conf @@ -0,0 +1,8 @@ +videoBpp=32 +menuClock=192 +maxClock=1020 +backlightTimeout=60 +opkPlatforms="gcw0" +brightnessSysfs="/sys/class/backlight/pwm-backlight" +powerSupplySysfs="/sys/class/power_supply/usb" +batterySysfs="/sys/class/power_supply/battery" diff --git a/data/platform/rg350m/input.conf b/data/platform/rg350m/input.conf new file mode 100644 index 0000000..db4d9bc --- /dev/null +++ b/data/platform/rg350m/input.conf @@ -0,0 +1,10 @@ +accept=keyboard,306 +cancel=keyboard,308 +altleft=keyboard,9 +altright=keyboard,8 +menu=keyboard,27 +settings=keyboard,13 +up=keyboard,273 +down=keyboard,274 +left=keyboard,276 +right=keyboard,275 diff --git a/data/platform/rg350m/sections/applications/30_terminal b/data/platform/rg350m/sections/applications/30_terminal new file mode 100644 index 0000000..6a02151 --- /dev/null +++ b/data/platform/rg350m/sections/applications/30_terminal @@ -0,0 +1,6 @@ +title=Terminal +description=Disable graphic mode +icon=skin:icons/utilities-terminal.png +exec=/bin/busybox +params=sh -c 'clear; echo "The graphic mode is now disabled."; echo ""; echo "This is only useful for developers who want to test their graphical apps from telnet."; echo ""; echo "(Press START to exit to the launcher)"; read' +consoleapp=true diff --git a/data/platform/rg350m/sections/settings/10_poweroff b/data/platform/rg350m/sections/settings/10_poweroff new file mode 100644 index 0000000..4a7933d --- /dev/null +++ b/data/platform/rg350m/sections/settings/10_poweroff @@ -0,0 +1,6 @@ +title=Power Off +description=Shut down the system +launchmsg=Powering off +icon=skin:icons/poweroff.png +exec=/sbin/poweroff +editable=false diff --git a/data/platform/rg350m/sections/settings/20_reboot b/data/platform/rg350m/sections/settings/20_reboot new file mode 100644 index 0000000..a62f245 --- /dev/null +++ b/data/platform/rg350m/sections/settings/20_reboot @@ -0,0 +1,6 @@ +title=Reboot +description=Reboot the system +launchmsg=Rebooting +icon=skin:icons/reboot.png +exec=/sbin/reboot +editable=false diff --git a/data/platform/rg350m/sections/settings/40_alsamixer b/data/platform/rg350m/sections/settings/40_alsamixer new file mode 100644 index 0000000..215b6b8 --- /dev/null +++ b/data/platform/rg350m/sections/settings/40_alsamixer @@ -0,0 +1,6 @@ +title=Sound Mixer +description=Configure sound settings +icon=skin:icons/alsamixer.png +exec=/usr/bin/alsamixer +consoleapp=true +editable=false diff --git a/data/platform/rg350m/sections/settings/50_system_info b/data/platform/rg350m/sections/settings/50_system_info new file mode 100644 index 0000000..e083d44 --- /dev/null +++ b/data/platform/rg350m/sections/settings/50_system_info @@ -0,0 +1,7 @@ +title=System Info +description=Info about the system +icon=skin:icons/about.png +exec=/usr/bin/dialog +params=--ok-label "Press START to exit" --no-shadow --msgbox "`/usr/bin/system_info`" 480 640 +consoleapp=true +editable=false diff --git a/data/platform/rg350m/skins/Default/imgs/buttons/accept.png b/data/platform/rg350m/skins/Default/imgs/buttons/accept.png new file mode 100644 index 0000000..3cf4204 Binary files /dev/null and b/data/platform/rg350m/skins/Default/imgs/buttons/accept.png differ diff --git a/data/platform/rg350m/skins/Default/imgs/buttons/cancel.png b/data/platform/rg350m/skins/Default/imgs/buttons/cancel.png new file mode 100644 index 0000000..0bfe9c9 Binary files /dev/null and b/data/platform/rg350m/skins/Default/imgs/buttons/cancel.png differ diff --git a/data/skins/320x240/Default/fonts/SourceHanSans-Regular-04.ttf b/data/skins/320x240/Default/fonts/SourceHanSans-Regular-04.ttf new file mode 100755 index 0000000..3595803 Binary files /dev/null and b/data/skins/320x240/Default/fonts/SourceHanSans-Regular-04.ttf differ diff --git a/data/skins/320x240/Default/imgs/battery/0.png b/data/skins/320x240/Default/imgs/battery/0.png index fcc30bc..5590c99 100644 Binary files a/data/skins/320x240/Default/imgs/battery/0.png and b/data/skins/320x240/Default/imgs/battery/0.png differ diff --git a/data/skins/320x240/Default/imgs/battery/1.png b/data/skins/320x240/Default/imgs/battery/1.png index 72c3cde..bbac753 100644 Binary files a/data/skins/320x240/Default/imgs/battery/1.png and b/data/skins/320x240/Default/imgs/battery/1.png differ diff --git a/data/skins/320x240/Default/imgs/battery/2.png b/data/skins/320x240/Default/imgs/battery/2.png index f48fbfc..28d9874 100644 Binary files a/data/skins/320x240/Default/imgs/battery/2.png and b/data/skins/320x240/Default/imgs/battery/2.png differ diff --git a/data/skins/320x240/Default/imgs/battery/3.png b/data/skins/320x240/Default/imgs/battery/3.png index 06bc623..76e215d 100644 Binary files a/data/skins/320x240/Default/imgs/battery/3.png and b/data/skins/320x240/Default/imgs/battery/3.png differ diff --git a/data/skins/320x240/Default/imgs/battery/4.png b/data/skins/320x240/Default/imgs/battery/4.png index 6345a72..b5e5052 100644 Binary files a/data/skins/320x240/Default/imgs/battery/4.png and b/data/skins/320x240/Default/imgs/battery/4.png differ diff --git a/data/skins/320x240/Default/imgs/battery/5.png b/data/skins/320x240/Default/imgs/battery/5.png index 5361ddf..3243477 100644 Binary files a/data/skins/320x240/Default/imgs/battery/5.png and b/data/skins/320x240/Default/imgs/battery/5.png differ diff --git a/data/skins/320x240/Default/skin.conf b/data/skins/320x240/Default/skin.conf old mode 100644 new mode 100755 index 71fa2cd..cfe06bc --- a/data/skins/320x240/Default/skin.conf +++ b/data/skins/320x240/Default/skin.conf @@ -1,3 +1,4 @@ +font="skin:fonts/SourceHanSans-Regular-04.ttf" messageBoxBorder=#505050ff topBarBg=#ffffff80 selectionBg=#ffffff80 diff --git a/data/skins/320x240/GCW/imgs/battery/0.png b/data/skins/320x240/GCW/imgs/battery/0.png deleted file mode 100644 index e1c7180..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/0.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/1.png b/data/skins/320x240/GCW/imgs/battery/1.png deleted file mode 100644 index 8ee8214..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/1.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/2.png b/data/skins/320x240/GCW/imgs/battery/2.png deleted file mode 100644 index 0758bfb..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/2.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/3.png b/data/skins/320x240/GCW/imgs/battery/3.png deleted file mode 100644 index e56d8f6..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/3.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/4.png b/data/skins/320x240/GCW/imgs/battery/4.png deleted file mode 100644 index b025881..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/4.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/5.png b/data/skins/320x240/GCW/imgs/battery/5.png deleted file mode 100644 index 8d5126a..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/5.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/battery/ac.png b/data/skins/320x240/GCW/imgs/battery/ac.png deleted file mode 100644 index 323dabf..0000000 Binary files a/data/skins/320x240/GCW/imgs/battery/ac.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/accept.png b/data/skins/320x240/GCW/imgs/buttons/accept.png deleted file mode 100644 index cbc47d6..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/accept.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/cancel.png b/data/skins/320x240/GCW/imgs/buttons/cancel.png deleted file mode 100644 index b6354bb..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/cancel.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/l.png b/data/skins/320x240/GCW/imgs/buttons/l.png deleted file mode 100644 index cc93c85..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/l.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/r.png b/data/skins/320x240/GCW/imgs/buttons/r.png deleted file mode 100644 index 452f311..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/r.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/sectionl.png b/data/skins/320x240/GCW/imgs/buttons/sectionl.png deleted file mode 100644 index cc93c85..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/sectionl.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/sectionr.png b/data/skins/320x240/GCW/imgs/buttons/sectionr.png deleted file mode 100644 index 452f311..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/sectionr.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/select.png b/data/skins/320x240/GCW/imgs/buttons/select.png deleted file mode 100644 index 82a0b11..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/select.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/start.png b/data/skins/320x240/GCW/imgs/buttons/start.png deleted file mode 100644 index 6eb7b85..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/start.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/x.png b/data/skins/320x240/GCW/imgs/buttons/x.png deleted file mode 100644 index 27aaeff..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/x.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/buttons/y.png b/data/skins/320x240/GCW/imgs/buttons/y.png deleted file mode 100644 index b348ab9..0000000 Binary files a/data/skins/320x240/GCW/imgs/buttons/y.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/section-l.png b/data/skins/320x240/GCW/imgs/section-l.png deleted file mode 100644 index bb92c05..0000000 Binary files a/data/skins/320x240/GCW/imgs/section-l.png and /dev/null differ diff --git a/data/skins/320x240/GCW/imgs/section-r.png b/data/skins/320x240/GCW/imgs/section-r.png deleted file mode 100644 index 5d51613..0000000 Binary files a/data/skins/320x240/GCW/imgs/section-r.png and /dev/null differ diff --git a/data/skins/320x240/GCW/skin.conf b/data/skins/320x240/GCW/skin.conf deleted file mode 100644 index b87f2bc..0000000 --- a/data/skins/320x240/GCW/skin.conf +++ /dev/null @@ -1,13 +0,0 @@ -font="/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed-Bold.ttf" -wallpaper="320_CONSOLE_DARK.png" -fontsize=9 -linkWidth=74 -topBarHeight=48 -linkHeight=50 -bottomBarHeight=20 -topBarBg=#20202000 -bottomBarBg=#20202000 -selectionBg=#ff000080 -messageBoxBg=#000000e0 -messageBoxBorder=#ff8080c0 -messageBoxSelection=#ff000080 diff --git a/data/skins/640x480/Default/fonts/SourceHanSans-Regular-04.ttf b/data/skins/640x480/Default/fonts/SourceHanSans-Regular-04.ttf new file mode 100755 index 0000000..3595803 Binary files /dev/null and b/data/skins/640x480/Default/fonts/SourceHanSans-Regular-04.ttf differ diff --git a/data/skins/640x480/Default/icons/4th.png b/data/skins/640x480/Default/icons/4th.png new file mode 100644 index 0000000..c44d49d Binary files /dev/null and b/data/skins/640x480/Default/icons/4th.png differ diff --git a/data/skins/640x480/Default/icons/Bard32.png b/data/skins/640x480/Default/icons/Bard32.png new file mode 100644 index 0000000..98129fc Binary files /dev/null and b/data/skins/640x480/Default/icons/Bard32.png differ diff --git a/data/skins/640x480/Default/icons/abook.png b/data/skins/640x480/Default/icons/abook.png new file mode 100644 index 0000000..18244fb Binary files /dev/null and b/data/skins/640x480/Default/icons/abook.png differ diff --git a/data/skins/640x480/Default/icons/about.png b/data/skins/640x480/Default/icons/about.png new file mode 100644 index 0000000..2c87710 Binary files /dev/null and b/data/skins/640x480/Default/icons/about.png differ diff --git a/data/skins/640x480/Default/icons/aewan.png b/data/skins/640x480/Default/icons/aewan.png new file mode 100644 index 0000000..98c798e Binary files /dev/null and b/data/skins/640x480/Default/icons/aewan.png differ diff --git a/data/skins/640x480/Default/icons/allegro.png b/data/skins/640x480/Default/icons/allegro.png new file mode 100644 index 0000000..5568e94 Binary files /dev/null and b/data/skins/640x480/Default/icons/allegro.png differ diff --git a/data/skins/640x480/Default/icons/alsamixer.png b/data/skins/640x480/Default/icons/alsamixer.png new file mode 100644 index 0000000..627b4c2 Binary files /dev/null and b/data/skins/640x480/Default/icons/alsamixer.png differ diff --git a/data/skins/640x480/Default/icons/ase.png b/data/skins/640x480/Default/icons/ase.png new file mode 100644 index 0000000..36ac98f Binary files /dev/null and b/data/skins/640x480/Default/icons/ase.png differ diff --git a/data/skins/640x480/Default/icons/backgammon.png b/data/skins/640x480/Default/icons/backgammon.png new file mode 100644 index 0000000..03cfc19 Binary files /dev/null and b/data/skins/640x480/Default/icons/backgammon.png differ diff --git a/data/skins/640x480/Default/icons/bc.png b/data/skins/640x480/Default/icons/bc.png new file mode 100644 index 0000000..2dae188 Binary files /dev/null and b/data/skins/640x480/Default/icons/bc.png differ diff --git a/data/skins/640x480/Default/icons/brainless.png b/data/skins/640x480/Default/icons/brainless.png new file mode 100644 index 0000000..59a9d72 Binary files /dev/null and b/data/skins/640x480/Default/icons/brainless.png differ diff --git a/data/skins/640x480/Default/icons/browser.png b/data/skins/640x480/Default/icons/browser.png new file mode 100644 index 0000000..a495ab1 Binary files /dev/null and b/data/skins/640x480/Default/icons/browser.png differ diff --git a/data/skins/640x480/Default/icons/calc.png b/data/skins/640x480/Default/icons/calc.png new file mode 100644 index 0000000..2dae188 Binary files /dev/null and b/data/skins/640x480/Default/icons/calc.png differ diff --git a/data/skins/640x480/Default/icons/calcurse.png b/data/skins/640x480/Default/icons/calcurse.png new file mode 100644 index 0000000..d9c6d69 Binary files /dev/null and b/data/skins/640x480/Default/icons/calcurse.png differ diff --git a/data/skins/640x480/Default/icons/chess.png b/data/skins/640x480/Default/icons/chess.png new file mode 100644 index 0000000..173e8d8 Binary files /dev/null and b/data/skins/640x480/Default/icons/chess.png differ diff --git a/data/skins/640x480/Default/icons/configure.png b/data/skins/640x480/Default/icons/configure.png new file mode 100644 index 0000000..5d8b7f1 Binary files /dev/null and b/data/skins/640x480/Default/icons/configure.png differ diff --git a/data/skins/640x480/Default/icons/ctronome.png b/data/skins/640x480/Default/icons/ctronome.png new file mode 100644 index 0000000..c0886b6 Binary files /dev/null and b/data/skins/640x480/Default/icons/ctronome.png differ diff --git a/data/skins/640x480/Default/icons/date.png b/data/skins/640x480/Default/icons/date.png new file mode 100644 index 0000000..d9c6d69 Binary files /dev/null and b/data/skins/640x480/Default/icons/date.png differ diff --git a/data/skins/640x480/Default/icons/dgclock.png b/data/skins/640x480/Default/icons/dgclock.png new file mode 100644 index 0000000..7a47291 Binary files /dev/null and b/data/skins/640x480/Default/icons/dgclock.png differ diff --git a/data/skins/640x480/Default/icons/dinguxcmdr.png b/data/skins/640x480/Default/icons/dinguxcmdr.png new file mode 100644 index 0000000..1f1bc8e Binary files /dev/null and b/data/skins/640x480/Default/icons/dinguxcmdr.png differ diff --git a/data/skins/640x480/Default/icons/ebook.png b/data/skins/640x480/Default/icons/ebook.png new file mode 100644 index 0000000..1847262 Binary files /dev/null and b/data/skins/640x480/Default/icons/ebook.png differ diff --git a/data/skins/640x480/Default/icons/editor.png b/data/skins/640x480/Default/icons/editor.png new file mode 100644 index 0000000..2a3ed1d Binary files /dev/null and b/data/skins/640x480/Default/icons/editor.png differ diff --git a/data/skins/640x480/Default/icons/emacs.png b/data/skins/640x480/Default/icons/emacs.png new file mode 100644 index 0000000..f06d160 Binary files /dev/null and b/data/skins/640x480/Default/icons/emacs.png differ diff --git a/data/skins/640x480/Default/icons/empathy.png b/data/skins/640x480/Default/icons/empathy.png new file mode 100644 index 0000000..d66958f Binary files /dev/null and b/data/skins/640x480/Default/icons/empathy.png differ diff --git a/data/skins/640x480/Default/icons/exit.png b/data/skins/640x480/Default/icons/exit.png new file mode 100644 index 0000000..d81c5bc Binary files /dev/null and b/data/skins/640x480/Default/icons/exit.png differ diff --git a/data/skins/640x480/Default/icons/explorer.png b/data/skins/640x480/Default/icons/explorer.png new file mode 100644 index 0000000..448368d Binary files /dev/null and b/data/skins/640x480/Default/icons/explorer.png differ diff --git a/data/skins/640x480/Default/icons/freedroid.png b/data/skins/640x480/Default/icons/freedroid.png new file mode 100644 index 0000000..e47510e Binary files /dev/null and b/data/skins/640x480/Default/icons/freedroid.png differ diff --git a/data/skins/640x480/Default/icons/generic.png b/data/skins/640x480/Default/icons/generic.png new file mode 100644 index 0000000..4f1b9fc Binary files /dev/null and b/data/skins/640x480/Default/icons/generic.png differ diff --git a/data/skins/640x480/Default/icons/gforth.png b/data/skins/640x480/Default/icons/gforth.png new file mode 100644 index 0000000..15c53ae Binary files /dev/null and b/data/skins/640x480/Default/icons/gforth.png differ diff --git a/data/skins/640x480/Default/icons/gjay.png b/data/skins/640x480/Default/icons/gjay.png new file mode 100644 index 0000000..2cb0648 Binary files /dev/null and b/data/skins/640x480/Default/icons/gjay.png differ diff --git a/data/skins/640x480/Default/icons/gmu.png b/data/skins/640x480/Default/icons/gmu.png new file mode 100644 index 0000000..d806b3a Binary files /dev/null and b/data/skins/640x480/Default/icons/gmu.png differ diff --git a/data/skins/640x480/Default/icons/gnuplot.png b/data/skins/640x480/Default/icons/gnuplot.png new file mode 100644 index 0000000..94457f1 Binary files /dev/null and b/data/skins/640x480/Default/icons/gnuplot.png differ diff --git a/data/skins/640x480/Default/icons/gottet.png b/data/skins/640x480/Default/icons/gottet.png new file mode 100644 index 0000000..10d4a9e Binary files /dev/null and b/data/skins/640x480/Default/icons/gottet.png differ diff --git a/data/skins/640x480/Default/icons/gtkguitune.png b/data/skins/640x480/Default/icons/gtkguitune.png new file mode 100644 index 0000000..8c4b834 Binary files /dev/null and b/data/skins/640x480/Default/icons/gtkguitune.png differ diff --git a/data/skins/640x480/Default/icons/guile.png b/data/skins/640x480/Default/icons/guile.png new file mode 100644 index 0000000..5fc3d16 Binary files /dev/null and b/data/skins/640x480/Default/icons/guile.png differ diff --git a/data/skins/640x480/Default/icons/htop.png b/data/skins/640x480/Default/icons/htop.png new file mode 100644 index 0000000..f41e27e Binary files /dev/null and b/data/skins/640x480/Default/icons/htop.png differ diff --git a/data/skins/640x480/Default/icons/imgv.png b/data/skins/640x480/Default/icons/imgv.png new file mode 100644 index 0000000..fb9e25b Binary files /dev/null and b/data/skins/640x480/Default/icons/imgv.png differ diff --git a/data/skins/640x480/Default/icons/irc.png b/data/skins/640x480/Default/icons/irc.png new file mode 100644 index 0000000..434bd94 Binary files /dev/null and b/data/skins/640x480/Default/icons/irc.png differ diff --git a/data/skins/640x480/Default/icons/leaf_red.png b/data/skins/640x480/Default/icons/leaf_red.png new file mode 100644 index 0000000..b7df8be Binary files /dev/null and b/data/skins/640x480/Default/icons/leaf_red.png differ diff --git a/data/skins/640x480/Default/icons/lingot.png b/data/skins/640x480/Default/icons/lingot.png new file mode 100644 index 0000000..d183384 Binary files /dev/null and b/data/skins/640x480/Default/icons/lingot.png differ diff --git a/data/skins/640x480/Default/icons/links.png b/data/skins/640x480/Default/icons/links.png new file mode 100644 index 0000000..0ad815d Binary files /dev/null and b/data/skins/640x480/Default/icons/links.png differ diff --git a/data/skins/640x480/Default/icons/listener.png b/data/skins/640x480/Default/icons/listener.png new file mode 100644 index 0000000..63cb145 Binary files /dev/null and b/data/skins/640x480/Default/icons/listener.png differ diff --git a/data/skins/640x480/Default/icons/lua.png b/data/skins/640x480/Default/icons/lua.png new file mode 100644 index 0000000..54307b0 Binary files /dev/null and b/data/skins/640x480/Default/icons/lua.png differ diff --git a/data/skins/640x480/Default/icons/lynx.png b/data/skins/640x480/Default/icons/lynx.png new file mode 100644 index 0000000..dce0832 Binary files /dev/null and b/data/skins/640x480/Default/icons/lynx.png differ diff --git a/data/skins/640x480/Default/icons/mathomatic.png b/data/skins/640x480/Default/icons/mathomatic.png new file mode 100644 index 0000000..92810fb Binary files /dev/null and b/data/skins/640x480/Default/icons/mathomatic.png differ diff --git a/data/skins/640x480/Default/icons/mc.png b/data/skins/640x480/Default/icons/mc.png new file mode 100644 index 0000000..c3136a4 Binary files /dev/null and b/data/skins/640x480/Default/icons/mc.png differ diff --git a/data/skins/640x480/Default/icons/mcabber.png b/data/skins/640x480/Default/icons/mcabber.png new file mode 100644 index 0000000..530a7d9 Binary files /dev/null and b/data/skins/640x480/Default/icons/mcabber.png differ diff --git a/data/skins/640x480/Default/icons/mediatomb.png b/data/skins/640x480/Default/icons/mediatomb.png new file mode 100644 index 0000000..ef3d24c Binary files /dev/null and b/data/skins/640x480/Default/icons/mediatomb.png differ diff --git a/data/skins/640x480/Default/icons/mplayer.png b/data/skins/640x480/Default/icons/mplayer.png new file mode 100644 index 0000000..625e1cb Binary files /dev/null and b/data/skins/640x480/Default/icons/mplayer.png differ diff --git a/data/skins/640x480/Default/icons/music.png b/data/skins/640x480/Default/icons/music.png new file mode 100644 index 0000000..6da343d Binary files /dev/null and b/data/skins/640x480/Default/icons/music.png differ diff --git a/data/skins/640x480/Default/icons/mutt.png b/data/skins/640x480/Default/icons/mutt.png new file mode 100644 index 0000000..bb67e82 Binary files /dev/null and b/data/skins/640x480/Default/icons/mutt.png differ diff --git a/data/skins/640x480/Default/icons/nanomap.png b/data/skins/640x480/Default/icons/nanomap.png new file mode 100644 index 0000000..aa2b85d Binary files /dev/null and b/data/skins/640x480/Default/icons/nanomap.png differ diff --git a/data/skins/640x480/Default/icons/nightsky.png b/data/skins/640x480/Default/icons/nightsky.png new file mode 100644 index 0000000..2879a26 Binary files /dev/null and b/data/skins/640x480/Default/icons/nightsky.png differ diff --git a/data/skins/640x480/Default/icons/octave.png b/data/skins/640x480/Default/icons/octave.png new file mode 100644 index 0000000..3896e59 Binary files /dev/null and b/data/skins/640x480/Default/icons/octave.png differ diff --git a/data/skins/640x480/Default/icons/photo.png b/data/skins/640x480/Default/icons/photo.png new file mode 100644 index 0000000..4ed0403 Binary files /dev/null and b/data/skins/640x480/Default/icons/photo.png differ diff --git a/data/skins/640x480/Default/icons/poweroff.png b/data/skins/640x480/Default/icons/poweroff.png new file mode 100644 index 0000000..40f08c1 Binary files /dev/null and b/data/skins/640x480/Default/icons/poweroff.png differ diff --git a/data/skins/640x480/Default/icons/powertop.png b/data/skins/640x480/Default/icons/powertop.png new file mode 100644 index 0000000..62002bf Binary files /dev/null and b/data/skins/640x480/Default/icons/powertop.png differ diff --git a/data/skins/640x480/Default/icons/pyclock.png b/data/skins/640x480/Default/icons/pyclock.png new file mode 100644 index 0000000..81fbfbb Binary files /dev/null and b/data/skins/640x480/Default/icons/pyclock.png differ diff --git a/data/skins/640x480/Default/icons/python.png b/data/skins/640x480/Default/icons/python.png new file mode 100644 index 0000000..6495150 Binary files /dev/null and b/data/skins/640x480/Default/icons/python.png differ diff --git a/data/skins/640x480/Default/icons/qball.png b/data/skins/640x480/Default/icons/qball.png new file mode 100644 index 0000000..544005f Binary files /dev/null and b/data/skins/640x480/Default/icons/qball.png differ diff --git a/data/skins/640x480/Default/icons/qstardict.png b/data/skins/640x480/Default/icons/qstardict.png new file mode 100644 index 0000000..8730316 Binary files /dev/null and b/data/skins/640x480/Default/icons/qstardict.png differ diff --git a/data/skins/640x480/Default/icons/reboot.png b/data/skins/640x480/Default/icons/reboot.png new file mode 100644 index 0000000..c41c4d4 Binary files /dev/null and b/data/skins/640x480/Default/icons/reboot.png differ diff --git a/data/skins/640x480/Default/icons/rss.png b/data/skins/640x480/Default/icons/rss.png new file mode 100644 index 0000000..ed12743 Binary files /dev/null and b/data/skins/640x480/Default/icons/rss.png differ diff --git a/data/skins/640x480/Default/icons/sc.png b/data/skins/640x480/Default/icons/sc.png new file mode 100644 index 0000000..3530b85 Binary files /dev/null and b/data/skins/640x480/Default/icons/sc.png differ diff --git a/data/skins/640x480/Default/icons/section.png b/data/skins/640x480/Default/icons/section.png new file mode 100644 index 0000000..d8d0fbb Binary files /dev/null and b/data/skins/640x480/Default/icons/section.png differ diff --git a/data/skins/640x480/Default/icons/skin.png b/data/skins/640x480/Default/icons/skin.png new file mode 100644 index 0000000..1fec4ed Binary files /dev/null and b/data/skins/640x480/Default/icons/skin.png differ diff --git a/data/skins/640x480/Default/icons/stardict.png b/data/skins/640x480/Default/icons/stardict.png new file mode 100644 index 0000000..4062284 Binary files /dev/null and b/data/skins/640x480/Default/icons/stardict.png differ diff --git a/data/skins/640x480/Default/icons/sticker.png b/data/skins/640x480/Default/icons/sticker.png new file mode 100644 index 0000000..4b2445d Binary files /dev/null and b/data/skins/640x480/Default/icons/sticker.png differ diff --git a/data/skins/640x480/Default/icons/supertux.png b/data/skins/640x480/Default/icons/supertux.png new file mode 100644 index 0000000..7f85e33 Binary files /dev/null and b/data/skins/640x480/Default/icons/supertux.png differ diff --git a/data/skins/640x480/Default/icons/suspend.png b/data/skins/640x480/Default/icons/suspend.png new file mode 100644 index 0000000..e39ca08 Binary files /dev/null and b/data/skins/640x480/Default/icons/suspend.png differ diff --git a/data/skins/640x480/Default/icons/tclsh.png b/data/skins/640x480/Default/icons/tclsh.png new file mode 100644 index 0000000..3c7b76a Binary files /dev/null and b/data/skins/640x480/Default/icons/tclsh.png differ diff --git a/data/skins/640x480/Default/icons/tetris.png b/data/skins/640x480/Default/icons/tetris.png new file mode 100644 index 0000000..293a478 Binary files /dev/null and b/data/skins/640x480/Default/icons/tetris.png differ diff --git a/data/skins/640x480/Default/icons/tile.png b/data/skins/640x480/Default/icons/tile.png new file mode 100644 index 0000000..cf40e05 Binary files /dev/null and b/data/skins/640x480/Default/icons/tile.png differ diff --git a/data/skins/640x480/Default/icons/tv.png b/data/skins/640x480/Default/icons/tv.png new file mode 100644 index 0000000..9629481 Binary files /dev/null and b/data/skins/640x480/Default/icons/tv.png differ diff --git a/data/skins/640x480/Default/icons/usb.png b/data/skins/640x480/Default/icons/usb.png new file mode 100644 index 0000000..1ba60a7 Binary files /dev/null and b/data/skins/640x480/Default/icons/usb.png differ diff --git a/data/skins/640x480/Default/icons/utilities-terminal.png b/data/skins/640x480/Default/icons/utilities-terminal.png new file mode 100644 index 0000000..0df7ade Binary files /dev/null and b/data/skins/640x480/Default/icons/utilities-terminal.png differ diff --git a/data/skins/640x480/Default/icons/vim.png b/data/skins/640x480/Default/icons/vim.png new file mode 100644 index 0000000..103f2ba Binary files /dev/null and b/data/skins/640x480/Default/icons/vim.png differ diff --git a/data/skins/640x480/Default/icons/vitetris.png b/data/skins/640x480/Default/icons/vitetris.png new file mode 100644 index 0000000..02fd2c6 Binary files /dev/null and b/data/skins/640x480/Default/icons/vitetris.png differ diff --git a/data/skins/640x480/Default/icons/w3m.png b/data/skins/640x480/Default/icons/w3m.png new file mode 100644 index 0000000..dce0832 Binary files /dev/null and b/data/skins/640x480/Default/icons/w3m.png differ diff --git a/data/skins/640x480/Default/icons/wallpaper.png b/data/skins/640x480/Default/icons/wallpaper.png new file mode 100644 index 0000000..42cfa5f Binary files /dev/null and b/data/skins/640x480/Default/icons/wallpaper.png differ diff --git a/data/skins/640x480/Default/icons/worm.png b/data/skins/640x480/Default/icons/worm.png new file mode 100644 index 0000000..77bff1f Binary files /dev/null and b/data/skins/640x480/Default/icons/worm.png differ diff --git a/data/skins/640x480/Default/icons/zgv.png b/data/skins/640x480/Default/icons/zgv.png new file mode 100644 index 0000000..4d88ab9 Binary files /dev/null and b/data/skins/640x480/Default/icons/zgv.png differ diff --git a/data/skins/640x480/Default/imgs/battery/0.png b/data/skins/640x480/Default/imgs/battery/0.png new file mode 100644 index 0000000..413fe53 Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/0.png differ diff --git a/data/skins/640x480/Default/imgs/battery/1.png b/data/skins/640x480/Default/imgs/battery/1.png new file mode 100644 index 0000000..65368a9 Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/1.png differ diff --git a/data/skins/640x480/Default/imgs/battery/2.png b/data/skins/640x480/Default/imgs/battery/2.png new file mode 100644 index 0000000..20bd08c Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/2.png differ diff --git a/data/skins/640x480/Default/imgs/battery/3.png b/data/skins/640x480/Default/imgs/battery/3.png new file mode 100644 index 0000000..d68fb8e Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/3.png differ diff --git a/data/skins/640x480/Default/imgs/battery/4.png b/data/skins/640x480/Default/imgs/battery/4.png new file mode 100644 index 0000000..8cfb848 Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/4.png differ diff --git a/data/skins/640x480/Default/imgs/battery/5.png b/data/skins/640x480/Default/imgs/battery/5.png new file mode 100644 index 0000000..03443d0 Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/5.png differ diff --git a/data/skins/640x480/Default/imgs/battery/ac.png b/data/skins/640x480/Default/imgs/battery/ac.png new file mode 100644 index 0000000..8329a10 Binary files /dev/null and b/data/skins/640x480/Default/imgs/battery/ac.png differ diff --git a/data/skins/640x480/Default/imgs/bottombar.png b/data/skins/640x480/Default/imgs/bottombar.png new file mode 100644 index 0000000..f1973cb Binary files /dev/null and b/data/skins/640x480/Default/imgs/bottombar.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/accept.png b/data/skins/640x480/Default/imgs/buttons/accept.png new file mode 100644 index 0000000..3cf4204 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/accept.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/cancel.png b/data/skins/640x480/Default/imgs/buttons/cancel.png new file mode 100644 index 0000000..0bfe9c9 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/cancel.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/down.png b/data/skins/640x480/Default/imgs/buttons/down.png new file mode 100644 index 0000000..c8fbccb Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/down.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/l.png b/data/skins/640x480/Default/imgs/buttons/l.png new file mode 100644 index 0000000..6ee64e2 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/l.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/left.png b/data/skins/640x480/Default/imgs/buttons/left.png new file mode 100644 index 0000000..d0ae65b Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/left.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/r.png b/data/skins/640x480/Default/imgs/buttons/r.png new file mode 100644 index 0000000..005e693 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/r.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/right.png b/data/skins/640x480/Default/imgs/buttons/right.png new file mode 100644 index 0000000..bdd9498 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/right.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/sectionl.png b/data/skins/640x480/Default/imgs/buttons/sectionl.png new file mode 100644 index 0000000..5bc0112 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/sectionl.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/sectionr.png b/data/skins/640x480/Default/imgs/buttons/sectionr.png new file mode 100644 index 0000000..affc028 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/sectionr.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/select.png b/data/skins/640x480/Default/imgs/buttons/select.png new file mode 100644 index 0000000..916229d Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/select.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/start.png b/data/skins/640x480/Default/imgs/buttons/start.png new file mode 100644 index 0000000..3c780fa Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/start.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/stick.png b/data/skins/640x480/Default/imgs/buttons/stick.png new file mode 100644 index 0000000..1ecbfe9 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/stick.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/up.png b/data/skins/640x480/Default/imgs/buttons/up.png new file mode 100644 index 0000000..e691ff2 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/up.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/vol+.png b/data/skins/640x480/Default/imgs/buttons/vol+.png new file mode 100644 index 0000000..26998dd Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/vol+.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/vol-.png b/data/skins/640x480/Default/imgs/buttons/vol-.png new file mode 100644 index 0000000..46d29bd Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/vol-.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/x.png b/data/skins/640x480/Default/imgs/buttons/x.png new file mode 100644 index 0000000..51780a6 Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/x.png differ diff --git a/data/skins/640x480/Default/imgs/buttons/y.png b/data/skins/640x480/Default/imgs/buttons/y.png new file mode 100644 index 0000000..56c2d6e Binary files /dev/null and b/data/skins/640x480/Default/imgs/buttons/y.png differ diff --git a/data/skins/640x480/Default/imgs/cpu.png b/data/skins/640x480/Default/imgs/cpu.png new file mode 100644 index 0000000..34f7a7b Binary files /dev/null and b/data/skins/640x480/Default/imgs/cpu.png differ diff --git a/data/skins/640x480/Default/imgs/file.png b/data/skins/640x480/Default/imgs/file.png new file mode 100644 index 0000000..f5bd08d Binary files /dev/null and b/data/skins/640x480/Default/imgs/file.png differ diff --git a/data/skins/640x480/Default/imgs/folder.png b/data/skins/640x480/Default/imgs/folder.png new file mode 100644 index 0000000..43dfae0 Binary files /dev/null and b/data/skins/640x480/Default/imgs/folder.png differ diff --git a/data/skins/640x480/Default/imgs/go-up.png b/data/skins/640x480/Default/imgs/go-up.png new file mode 100644 index 0000000..809b746 Binary files /dev/null and b/data/skins/640x480/Default/imgs/go-up.png differ diff --git a/data/skins/640x480/Default/imgs/inet.png b/data/skins/640x480/Default/imgs/inet.png new file mode 100644 index 0000000..3ef7422 Binary files /dev/null and b/data/skins/640x480/Default/imgs/inet.png differ diff --git a/data/skins/640x480/Default/imgs/manual.png b/data/skins/640x480/Default/imgs/manual.png new file mode 100644 index 0000000..e36dd83 Binary files /dev/null and b/data/skins/640x480/Default/imgs/manual.png differ diff --git a/data/skins/640x480/Default/imgs/menu.png b/data/skins/640x480/Default/imgs/menu.png new file mode 100644 index 0000000..31da0f5 Binary files /dev/null and b/data/skins/640x480/Default/imgs/menu.png differ diff --git a/data/skins/640x480/Default/imgs/mute.png b/data/skins/640x480/Default/imgs/mute.png new file mode 100644 index 0000000..c70e9de Binary files /dev/null and b/data/skins/640x480/Default/imgs/mute.png differ diff --git a/data/skins/640x480/Default/imgs/phones.png b/data/skins/640x480/Default/imgs/phones.png new file mode 100644 index 0000000..0c8123c Binary files /dev/null and b/data/skins/640x480/Default/imgs/phones.png differ diff --git a/data/skins/640x480/Default/imgs/samba.png b/data/skins/640x480/Default/imgs/samba.png new file mode 100644 index 0000000..285687c Binary files /dev/null and b/data/skins/640x480/Default/imgs/samba.png differ diff --git a/data/skins/640x480/Default/imgs/sd.png b/data/skins/640x480/Default/imgs/sd.png new file mode 100644 index 0000000..f8cdc86 Binary files /dev/null and b/data/skins/640x480/Default/imgs/sd.png differ diff --git a/data/skins/640x480/Default/imgs/section-l.png b/data/skins/640x480/Default/imgs/section-l.png new file mode 100644 index 0000000..755df3f Binary files /dev/null and b/data/skins/640x480/Default/imgs/section-l.png differ diff --git a/data/skins/640x480/Default/imgs/section-r.png b/data/skins/640x480/Default/imgs/section-r.png new file mode 100644 index 0000000..301232e Binary files /dev/null and b/data/skins/640x480/Default/imgs/section-r.png differ diff --git a/data/skins/640x480/Default/imgs/selection.png b/data/skins/640x480/Default/imgs/selection.png new file mode 100644 index 0000000..02fdd93 Binary files /dev/null and b/data/skins/640x480/Default/imgs/selection.png differ diff --git a/data/skins/640x480/Default/imgs/topbar.png b/data/skins/640x480/Default/imgs/topbar.png new file mode 100644 index 0000000..bce5aa7 Binary files /dev/null and b/data/skins/640x480/Default/imgs/topbar.png differ diff --git a/data/skins/640x480/Default/imgs/volume.png b/data/skins/640x480/Default/imgs/volume.png new file mode 100644 index 0000000..8fc8024 Binary files /dev/null and b/data/skins/640x480/Default/imgs/volume.png differ diff --git a/data/skins/640x480/Default/imgs/webserver.png b/data/skins/640x480/Default/imgs/webserver.png new file mode 100644 index 0000000..74bedf5 Binary files /dev/null and b/data/skins/640x480/Default/imgs/webserver.png differ diff --git a/data/skins/640x480/Default/sections/applications.png b/data/skins/640x480/Default/sections/applications.png new file mode 100644 index 0000000..92d0079 Binary files /dev/null and b/data/skins/640x480/Default/sections/applications.png differ diff --git a/data/skins/640x480/Default/sections/emulators.png b/data/skins/640x480/Default/sections/emulators.png new file mode 100644 index 0000000..9ea02c9 Binary files /dev/null and b/data/skins/640x480/Default/sections/emulators.png differ diff --git a/data/skins/640x480/Default/sections/games.png b/data/skins/640x480/Default/sections/games.png new file mode 100644 index 0000000..0bcb4d7 Binary files /dev/null and b/data/skins/640x480/Default/sections/games.png differ diff --git a/data/skins/640x480/Default/sections/programming.png b/data/skins/640x480/Default/sections/programming.png new file mode 100644 index 0000000..5350fa8 Binary files /dev/null and b/data/skins/640x480/Default/sections/programming.png differ diff --git a/data/skins/640x480/Default/sections/settings.png b/data/skins/640x480/Default/sections/settings.png new file mode 100644 index 0000000..2af3ef1 Binary files /dev/null and b/data/skins/640x480/Default/sections/settings.png differ diff --git a/data/skins/640x480/Default/sections/terminals.png b/data/skins/640x480/Default/sections/terminals.png new file mode 100644 index 0000000..0df7ade Binary files /dev/null and b/data/skins/640x480/Default/sections/terminals.png differ diff --git a/data/skins/640x480/Default/sections/utilities.png b/data/skins/640x480/Default/sections/utilities.png new file mode 100644 index 0000000..23746c1 Binary files /dev/null and b/data/skins/640x480/Default/sections/utilities.png differ diff --git a/data/skins/640x480/Default/skin.conf b/data/skins/640x480/Default/skin.conf new file mode 100755 index 0000000..7d54068 --- /dev/null +++ b/data/skins/640x480/Default/skin.conf @@ -0,0 +1,12 @@ +font="skin:fonts/SourceHanSans-Regular-04.ttf" +messageBoxBorder=#505050ff +topBarBg=#ffffff80 +selectionBg=#ffffff80 +messageBoxBg=#00000080 +messageBoxSelection=#fffffff80 +bottomBarBg=#ffffff80 +topBarHeight=80 +bottomBarHeight=40 +linkHeight=100 +linkWidth=150 +fontsize=20 diff --git a/data/skins/640x480/Default/wallpapers/default.png b/data/skins/640x480/Default/wallpapers/default.png new file mode 100644 index 0000000..7334287 Binary files /dev/null and b/data/skins/640x480/Default/wallpapers/default.png differ diff --git a/data/skins/640x480/Default/wallpapers/opendingux.png b/data/skins/640x480/Default/wallpapers/opendingux.png new file mode 100644 index 0000000..13aa1f5 Binary files /dev/null and b/data/skins/640x480/Default/wallpapers/opendingux.png differ diff --git a/data/skins/640x480/Default/wallpapers/rg350.png b/data/skins/640x480/Default/wallpapers/rg350.png new file mode 100644 index 0000000..57b02a6 Binary files /dev/null and b/data/skins/640x480/Default/wallpapers/rg350.png differ diff --git a/src/background.cpp b/src/background.cpp index 62f841c..f552791 100644 --- a/src/background.cpp +++ b/src/background.cpp @@ -20,13 +20,13 @@ void Background::paint(Surface& s) { #ifdef ENABLE_CLOCK font.write(s, clock.getTime(), - s.width() / 2, gmenu2x.bottomBarTextY, + s.width() / 2, s.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2, Font::HAlignCenter, Font::VAlignMiddle); #endif auto icon = battery.getIcon(); if (icon) { - icon->blit(s, s.width() - 19, gmenu2x.bottomBarIconY); + icon->blit(s, s.width() - (icon->width() * 1.2 ), s.height() - (gmenu2x.skinConfInt["bottomBarHeight"] + icon->height()) / 2); } } diff --git a/src/browsedialog.cpp b/src/browsedialog.cpp index 05beb12..d8372fc 100644 --- a/src/browsedialog.cpp +++ b/src/browsedialog.cpp @@ -57,14 +57,15 @@ bool BrowseDialog::exec() setPath(GMENU2X_CARD_ROOT); const int topBarHeight = gmenu2x.skinConfInt["topBarHeight"]; + const int bottomBarHeight = gmenu2x.skinConfInt["bottomBarHeight"]; rowHeight = gmenu2x.font->getLineSpacing() + 1; // gp2x=15+1 / pandora=19+1 - rowHeight = std::clamp(rowHeight, 20u, 40u); - numRows = (gmenu2x.height() - topBarHeight - 20) / rowHeight; + rowHeight = stdx::clamp(rowHeight, 20u, 40u); + numRows = (gmenu2x.height() - topBarHeight - bottomBarHeight) / rowHeight; clipRect = SDL_Rect{ 0, static_cast(topBarHeight + 1), static_cast(gmenu2x.width() - 9), - static_cast(gmenu2x.height() - topBarHeight - 25) + static_cast(gmenu2x.height() - topBarHeight - bottomBarHeight) }; selected = 0; @@ -214,7 +215,7 @@ void BrowseDialog::paint() drawTitleIcon(bg, "icons/explorer.png", true); writeTitle(bg, title); writeSubTitle(bg, subtitle); - buttonBox.paint(bg, 5, gmenu2x.height() - 1); + buttonBox.paint(bg, 5, gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2); bg.convertToDisplayFormat(); bg.blit(s, 0, 0); @@ -253,8 +254,9 @@ void BrowseDialog::paint() } else { icon = iconFile; } - icon->blit(s, 5, offsetY); - gmenu2x.font->write(s, fl[i], 24, offsetY + rowHeight / 2, + int x = 5; + icon->blit(s, x, offsetY); + gmenu2x.font->write(s, fl[i], x + icon->width() * 1.2, offsetY + rowHeight / 2, Font::HAlignLeft, Font::VAlignMiddle); offsetY += rowHeight; diff --git a/src/buttonbox.cpp b/src/buttonbox.cpp index bea9777..3461645 100644 --- a/src/buttonbox.cpp +++ b/src/buttonbox.cpp @@ -20,8 +20,9 @@ void ButtonBox::paint(Surface& s, int x, int y) { for (auto& button : buttons) { auto rect = button->getRect(); - button->setPosition(x, y - rect.h); + button->setPosition(x, y - rect.h / 2); button->paint(s); - x += button->getRect().w + 6; + //space 20% of current button between next button + x += button->getRect().w * 1.20; } } diff --git a/src/cpp_backports.h b/src/cpp_backports.h new file mode 100644 index 0000000..062da1b --- /dev/null +++ b/src/cpp_backports.h @@ -0,0 +1,19 @@ +#ifndef __CPP_BACKPORTS__ +#define __CPP_BACKPORTS__ + +// Backports of C++ 17 stuff to C++ 14. + +namespace stdx { +template +constexpr const _Tp& clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi) { + return (__val < __lo) ? __lo : (__hi < __val) ? __hi : __val; +} + +template +constexpr const _Tp& clamp(const _Tp& __val, const _Tp& __lo, const _Tp& __hi, + _Compare __comp) { + return __comp(__val, __lo) ? __lo : __comp(__hi, __val) ? __hi : __val; +} +} // namespace std + +#endif // __CPP_BACKPORTS__ diff --git a/src/dialog.cpp b/src/dialog.cpp index d05d336..cfa7a3d 100644 --- a/src/dialog.cpp +++ b/src/dialog.cpp @@ -21,8 +21,7 @@ void Dialog::drawTitleIcon(Surface& s, const std::string &icon, bool skinRes) if (i==NULL) i = gmenu2x.sc.skinRes("icons/generic.png"); - i->blit(s, 4, (gmenu2x.skinConfInt["topBarHeight"] - 32) / 2); -} +i->blit(s, i->width() * .2, (gmenu2x.skinConfInt["topBarHeight"] - i->height()) / 2);} void Dialog::writeTitle(Surface& s, const std::string &title) { diff --git a/src/gmenu2x.cpp b/src/gmenu2x.cpp index a70e5ef..7cdbd81 100644 --- a/src/gmenu2x.cpp +++ b/src/gmenu2x.cpp @@ -51,7 +51,7 @@ #include #include -#include +#include #include #include #include @@ -85,6 +85,7 @@ static const char *colorNames[NUM_COLORS] = { static const std::pair supported_resolutions[] = { { 800, 480 }, + { 640, 480 }, { 320, 240 }, { 240, 160 }, }; @@ -140,7 +141,7 @@ int main(int /*argc*/, char * /*argv*/[]) { gmenu2x_home = (string)home + "/.gmenu2x"; std::error_code ec; - if (!std::filesystem::create_directory(gmenu2x_home, ec) && ec.value()) { + if (!std::experimental::filesystem::create_directory(gmenu2x_home, ec) && ec.value()) { ERROR("Unable to create gmenu2x home directory: %d\n", ec.value()); return 1; } @@ -229,9 +230,6 @@ GMenu2X::GMenu2X() : input(*this), sc(this) brightnessmanager = std::make_unique(this); confInt["brightnessLevel"] = brightnessmanager->currentBrightness(); - bottomBarIconY = height() - 18; - bottomBarTextY = height() - 10; - if (!fileExists(confStr["wallpaper"])) { DEBUG("No wallpaper defined; we will take the default one.\n"); confStr["wallpaper"] = getSystemSkinPath("Default") @@ -287,46 +285,67 @@ void GMenu2X::initBG() { bgmain.reset(new OffscreenSurface(*bg)); + unsigned int bottomBarElementX = 0; + { auto sd = OffscreenSurface::loadImage( sc.getSkinFilePath("imgs/sd.png")); - if (sd) sd->blit(*bgmain, 3, bottomBarIconY); + if (sd) { + bottomBarElementX = sd->width() * .2; + sd->blit(*bgmain, bottomBarElementX, height() - (skinConfInt["bottomBarHeight"] + sd->height()) / 2); + bottomBarElementX += sd->width() * 1.1; + } } - cpuX = 32 + font->write(*bgmain, getDiskFree(getHome().c_str()), - 22, bottomBarTextY, Font::HAlignLeft, Font::VAlignMiddle); + bottomBarElementX += font->write(*bgmain, + getDiskFree(getHome().c_str()), + bottomBarElementX, + height() - skinConfInt["bottomBarHeight"] / 2, + Font::HAlignLeft, + Font::VAlignMiddle) * 1.15; #ifdef ENABLE_CPUFREQ { auto cpu_img = OffscreenSurface::loadImage( sc.getSkinFilePath("imgs/cpu.png")); - if (cpu_img) cpu_img->blit(*bgmain, cpuX, bottomBarIconY); + if (cpu_img) { + cpu_img->blit(*bgmain, bottomBarElementX, height() - (skinConfInt["bottomBarHeight"] + cpu_img->height()) / 2); + bottomBarElementX += cpu_img->width() * 1.1; + } } - cpuX += 19; - manualX = cpuX + font->getTextWidth("300MHz") + 5; -#else - manualX = cpuX; + cpuX = bottomBarElementX; + bottomBarElementX += font->getTextWidth("1000MHz") * 1.15; #endif - - int serviceX = width() - 38; + manualX = bottomBarElementX; + + int serviceX = width(); if (usbnet) { if (web) { auto webserver = OffscreenSurface::loadImage( sc.getSkinFilePath("imgs/webserver.png")); - if (webserver) webserver->blit(*bgmain, serviceX, bottomBarIconY); - serviceX -= 19; + if (webserver) { + serviceX -= webserver->width() * .2; + webserver->blit(*bgmain, serviceX, height() - (skinConfInt["bottomBarHeight"] + webserver->height()) / 2); + serviceX -= webserver->width() * 1.15; + } } if (samba) { auto sambaS = OffscreenSurface::loadImage( sc.getSkinFilePath("imgs/samba.png")); - if (sambaS) sambaS->blit(*bgmain, serviceX, bottomBarIconY); - serviceX -= 19; + if (sambaS) { + serviceX -= sambaS->width() * .2; + sambaS->blit(*bgmain, serviceX, height() - (skinConfInt["bottomBarHeight"] + sambaS->height()) / 2); + serviceX -= sambaS->width() * 1.15; + } } if (inet) { auto inetS = OffscreenSurface::loadImage( sc.getSkinFilePath("imgs/inet.png")); - if (inetS) inetS->blit(*bgmain, serviceX, bottomBarIconY); - serviceX -= 19; + if (inetS) { + serviceX -= inetS->width() * .2; + inetS->blit(*bgmain, serviceX, height() - (skinConfInt["bottomBarHeight"] + inetS->height()) / 2); + serviceX -= inetS->width() * 1.15; + } } } (void)serviceX; @@ -488,7 +507,7 @@ void GMenu2X::writeConfig() { void GMenu2X::writeSkinConfig() { string skin_dir = getLocalSkinPath(confStr["skin"]); - std::filesystem::create_directories(skin_dir); + std::experimental::filesystem::create_directories(skin_dir); string conffile = skin_dir + "/skin.conf"; ofstream inf(conffile.c_str()); @@ -775,7 +794,7 @@ void GMenu2X::setSkin(const string &skin, bool setWallpaper) { evalIntConf(skinConfInt, "topBarHeight", 50, 32, 120); evalIntConf(skinConfInt, "bottomBarHeight", 20, 20, 120); evalIntConf(skinConfInt, "linkHeight", 50, 32, 120); - evalIntConf(skinConfInt, "linkWidth", 80, 32, 120); + evalIntConf(skinConfInt, "linkWidth", 80, 32, 180); if (menu != NULL) menu->skinUpdated(); @@ -825,7 +844,27 @@ void GMenu2X::showContextMenu() { } void GMenu2X::changeWallpaper() { - WallpaperDialog wp(*this); + FileLister fl; + fl.setShowDirectories(false); + fl.setFilter("png"); + + fl.browse(getLocalSkinPath(confStr["skin"]) + + "/wallpapers", true); + fl.browse(getSystemSkinPath(confStr["skin"]) + + "/wallpapers", false); + + if (confStr["skin"] != "Default") { + fl.browse(getLocalSkinPath("Default") + + "/wallpapers", false); + fl.browse(getSystemSkinPath("Default") + + "/wallpapers", false); + } + + vector wallpapers = fl.getFiles(); + + DEBUG("Wallpapers: %zd\n", wallpapers.size()); + + WallpaperDialog wp(*this, tr["Wallpaper selection"], wallpapers); if (wp.exec() && confStr["wallpaper"] != wp.wallpaper) { confStr["wallpaper"] = wp.wallpaper; initBG(); @@ -961,7 +1000,7 @@ void GMenu2X::deleteSection() string GMenu2X::getDiskFree(const char *path) { std::error_code ec; - auto space = std::filesystem::space(path, ec); + auto space = std::experimental::filesystem::space(path, ec); string df = ""; @@ -986,14 +1025,13 @@ int GMenu2X::drawButton(Surface& surface, const string &btn, int w = 0; auto icon = sc["skin:imgs/buttons/" + btn + ".png"]; if (icon) { - if (y < 0) y = height() + y; + if (y < 0) y += height(); w = icon->width(); - icon->blit(surface, x, y - 7); + icon->blit(surface, x, y - icon->height() / 2); if (!text.empty()) { - w += 3; + w *= 1.1; w += font->write(surface, text, x + w, y, - Font::HAlignLeft, Font::VAlignMiddle); - w += 6; + Font::HAlignLeft, Font::VAlignMiddle) * 1.15; } } return x + w; @@ -1006,12 +1044,12 @@ int GMenu2X::drawButtonRight(Surface& surface, const string &btn, if (icon) { if (y < 0) y = height() + y; w = icon->width(); - icon->blit(surface, x - w, y - 7); + y -= icon->height() / 2; + icon->blit(surface, x - w, y); if (!text.empty()) { - w += 3; + w *= 1.1; w += font->write(surface, text, x - w, y, - Font::HAlignRight, Font::VAlignMiddle); - w += 6; + Font::HAlignRight, Font::VAlignMiddle) * 1.15; } } return x - w; diff --git a/src/gmenu2x.h b/src/gmenu2x.h index 1769fca..9a7453b 100644 --- a/src/gmenu2x.h +++ b/src/gmenu2x.h @@ -21,6 +21,8 @@ #ifndef GMENU2X_H #define GMENU2X_H +#include "cpp_backports.h" + #include "buildopts.h" #include "contextmenu.h" #include "cpu.h" @@ -131,7 +133,6 @@ class GMenu2X { /* * Variables needed for elements disposition */ - uint32_t bottomBarIconY, bottomBarTextY; unsigned short cpuX; //!< Offset for displaying cpu clock information unsigned short manualX; //!< Offset for displaying the manual indicator in the taskbar diff --git a/src/imagedialog.cpp b/src/imagedialog.cpp index b416442..f9e4aed 100644 --- a/src/imagedialog.cpp +++ b/src/imagedialog.cpp @@ -56,7 +56,7 @@ ImageDialog::~ImageDialog() { void ImageDialog::beforeFileList() { if (fl.isFile(selected) && fileExists(getPath()+"/"+fl[selected])) - previews[getPath()+"/"+fl[selected]]->blitRight(*gmenu2x.s, 310, 43); + previews[getPath()+"/"+fl[selected]]->blitRight(*gmenu2x.s, gmenu2x.width() * .97, 43); } void ImageDialog::onChangeDir() { diff --git a/src/inputdialog.cpp b/src/inputdialog.cpp index b4a46c2..59604bc 100644 --- a/src/inputdialog.cpp +++ b/src/inputdialog.cpp @@ -117,7 +117,7 @@ InputDialog::InputDialog(GMenu2X& gmenu2x, InputManager &inputMgr_, } void InputDialog::setKeyboard(int kb) { - kb = std::clamp(kb, 0, (int)keyboard.size() - 1); + kb = stdx::clamp(kb, 0, (int)keyboard.size() - 1); curKeyboard = kb; this->kb = &(keyboard[kb]); kbLength = this->kb->at(0).length(); diff --git a/src/link.cpp b/src/link.cpp index fe5116b..f9fbafa 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -53,16 +53,22 @@ Link::Link(GMenu2X& gmenu2x, Action action) void Link::paint() { Surface& s = *gmenu2x.s; + int x = iconX; if (iconSurface) { - iconSurface->blit(s, iconX, rect.y+padding, 32,32); - } + iconSurface->blit(s, iconX, rect.y+padding, iconSurface->width(), iconSurface->height()); + x += iconSurface->width() / 2; + } else + x += 16; SDL_Rect coords = { - static_cast(iconX + 16), + static_cast(x), static_cast(rect.y + gmenu2x.skinConfInt["linkHeight"] - padding), 0, 0 }; + if (cachedFont != gmenu2x.font.get()) { + textSurface = gmenu2x.font->render(title); + } textSurface->blit(s, coords, Font::HAlignCenter, Font::VAlignBottom); } @@ -84,6 +90,9 @@ void Link::paintDescription(int center_x, int center_y) }; if (descSurface != nullptr) { + if (cachedFont != gmenu2x.font.get()) { + descSurface = gmenu2x.font->render(description); + } descSurface->blit(*gmenu2x.s, coords, Font::HAlignCenter, Font::VAlignBottom); } @@ -98,9 +107,21 @@ const string &Link::getTitle() const { return title; } -void Link::setTitle(const string &title) { - textSurface = gmenu2x.font->render(title); +const string &Link::getShortTitle() const { + return title; +} +void Link::setTitle(const string &title) { + std::string shorttitle = title; + if (gmenu2x.font->getTextWidth(shorttitle)>gmenu2x.skinConfInt["linkWidth"]) { + while (gmenu2x.font->getTextWidth(shorttitle+"..")>gmenu2x.skinConfInt["linkWidth"]) + shorttitle = shorttitle.substr(0,shorttitle.length()-1); + shorttitle += ".."; + } + textSurface = gmenu2x.font->render(shorttitle); + cachedFont = gmenu2x.font.get(); + + this->shorttitle = shorttitle; this->title = title; edited = true; } @@ -111,6 +132,7 @@ const string &Link::getDescription() const { void Link::setDescription(const string &description) { descSurface = gmenu2x.font->render(description); + cachedFont = gmenu2x.font.get(); this->description = description; edited = true; diff --git a/src/link.h b/src/link.h index f0ddfe1..6804274 100644 --- a/src/link.h +++ b/src/link.h @@ -27,6 +27,7 @@ #include #include +class Font; class GMenu2X; class OffscreenSurface; @@ -53,6 +54,7 @@ class Link { void setPosition(int x, int y); const std::string &getTitle() const; + const std::string &getShortTitle() const; void setTitle(const std::string &title); const std::string &getDescription() const; void setDescription(const std::string &description); @@ -72,6 +74,9 @@ class Link { std::unique_ptr textSurface; std::unique_ptr descSurface; + // Font used for pre-rendered text and desc surfaces. + const Font *cachedFont = nullptr; + virtual const std::string &searchIcon(); void setIconPath(const std::string &icon); void updateSurfaces(); @@ -84,7 +89,7 @@ class Link { SDL_Rect rect; uint32_t iconX, padding; int lastTick; - std::string title, description; + std::string title, shorttitle, description; }; #endif diff --git a/src/linkapp.cpp b/src/linkapp.cpp index 33ae492..f9b1bf3 100644 --- a/src/linkapp.cpp +++ b/src/linkapp.cpp @@ -387,7 +387,7 @@ void LinkApp::drawLaunch(Surface& s) { else gmenu2x.sc["icons/generic.png"]->blit(gmenu2x.s,x,104);*/ if (iconSurface) { - iconSurface->blit(s, x, gmenu2x.height() / 2 - 16); + iconSurface->blit(s, x, gmenu2x.height() / 2 - iconSurface->height() / 2); } gmenu2x.font->write(s, text, x + 42, gmenu2x.height() / 2 + 1, Font::HAlignLeft, Font::VAlignMiddle); @@ -468,10 +468,11 @@ void LinkApp::showManual() { gmenu2x.drawBottomBar(s); int x = 5; - x = gmenu2x.drawButton(s, "left", "", x); - x = gmenu2x.drawButton(s, "right", gmenu2x.tr["Change page"], x); - x = gmenu2x.drawButton(s, "cancel", "", x); - x = gmenu2x.drawButton(s, "start", gmenu2x.tr["Exit"], x); + int y = gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2; + x = gmenu2x.drawButton(s, "left", "", x, y); + x = gmenu2x.drawButton(s, "right", gmenu2x.tr["Change page"], x, y); + x = gmenu2x.drawButton(s, "cancel", "", x, y); + x = gmenu2x.drawButton(s, "start", gmenu2x.tr["Exit"], x, y); (void)x; ss.clear(); diff --git a/src/menu.cpp b/src/menu.cpp index 29d6d20..25fc951 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include @@ -102,7 +102,7 @@ Menu::Menu(GMenu2X& gmenu2x) #endif btnContextMenu.setPosition(gmenu2x.width() - 38, - gmenu2x.bottomBarIconY); + gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2); } Menu::~Menu() @@ -112,7 +112,7 @@ Menu::~Menu() void Menu::readSections(std::string const& parentDir) { std::error_code ec; - for (const auto& entry : std::filesystem::directory_iterator(parentDir, ec)) + for (const auto& entry : std::experimental::filesystem::directory_iterator(parentDir, ec)) { const auto filename = entry.path().filename().string(); if (filename[0] != '.') @@ -126,7 +126,7 @@ string Menu::createSectionDir(string const& sectionName) string dir = GMenu2X::getHome() + "/sections/" + sectionName; std::error_code ec; - if (!std::filesystem::create_directories(dir, ec) && ec.value()) { + if (!std::experimental::filesystem::create_directories(dir, ec) && ec.value()) { WARNING("Failed to create parent sections dir: %d\n", ec.value()); return ""; } @@ -139,7 +139,7 @@ void Menu::skinUpdated() { //recalculate some coordinates based on the new element sizes linkColumns = (gmenu2x.width() - 10) / skinConfInt["linkWidth"]; - linkRows = (gmenu2x.height() - 35 - skinConfInt["topBarHeight"]) + linkRows = (gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] - gmenu2x.skinConfInt["topBarHeight"]) / skinConfInt["linkHeight"]; //reload section icons @@ -181,8 +181,8 @@ void Menu::paint(Surface &s) { SurfaceCollection &sc = gmenu2x.sc; ConfIntHash &skinConfInt = gmenu2x.skinConfInt; - const int topBarHeight = skinConfInt["topBarHeight"]; - const int bottomBarHeight = skinConfInt["bottomBarHeight"]; + const int topBarHeight = gmenu2x.skinConfInt["topBarHeight"]; + const int bottomBarHeight = gmenu2x.skinConfInt["bottomBarHeight"]; const int linkWidth = skinConfInt["linkWidth"]; const int linkHeight = skinConfInt["linkHeight"]; RGBAColor &selectionBgColor = gmenu2x.skinConfColors[COLOR_SELECTION_BG]; @@ -219,6 +219,8 @@ void Menu::paint(Surface &s) { x += (((t * t) / linkWidth) * t) / linkWidth; } icon->blit(s, x - 16, sectionLinkPadding, 32, 32); + + font.write(s, sections[j], x, topBarHeight - sectionLinkPadding, Font::HAlignCenter, Font::VAlignBottom); } @@ -229,7 +231,7 @@ void Menu::paint(Surface &s) { l_button->blit(s, 0, 0); auto r_button = sc.skinRes("imgs/section-r.png"); if (r_button) - r_button->blit(s, width - 10, 0); + r_button->blit(s, width - r_button->width(), 0); } auto& sectionLinks = links[iSection]; @@ -243,7 +245,7 @@ void Menu::paint(Surface &s) { const int linkMarginX = ( width - linkWidth * linkColumns - linkSpacingX * (linkColumns - 1) ) / 2; - const int linkSpacingY = (height - 35 - topBarHeight - linkRows * linkHeight) / linkRows; + const int linkSpacingY = (height - bottomBarHeight - topBarHeight - linkRows * linkHeight) / linkRows; for (uint32_t i = iFirstDispRow * linkColumns; i < iFirstDispRow * linkColumns + linksPerPage && i < numLinks; i++) { const int ir = i - iFirstDispRow * linkColumns; const int x = linkMarginX + (ir % linkColumns) * (linkWidth + linkSpacingX); @@ -264,13 +266,14 @@ void Menu::paint(Surface &s) { if (linkApp && linkApp->isEditable()) { #ifdef ENABLE_CPUFREQ font.write(s, gmenu2x.cpu.freqStr(linkApp->clock()), - gmenu2x.cpuX, gmenu2x.bottomBarTextY, + gmenu2x.cpuX, gmenu2x.height() - bottomBarHeight / 2, Font::HAlignLeft, Font::VAlignMiddle); #endif //Manual indicator - if (!linkApp->getManual().empty()) - sc.skinRes("imgs/manual.png")->blit( - s, gmenu2x.manualX, gmenu2x.bottomBarIconY); + if (!linkApp->getManual().empty()) { + auto manual_img = sc.skinRes("imgs/manual.png"); + manual_img->blit(s, gmenu2x.manualX, gmenu2x.height() - (bottomBarHeight / 2 + manual_img->height() / 2)); + } } } @@ -426,7 +429,7 @@ bool Menu::addLink(string const& path, string const& file) string shorttitle=title, description="", exec=dirPath+file, icon=""; if (fileExists(exename+".png")) icon = exename+".png"; - + //Reduce title lenght to fit the link width if (gmenu2x.font->getTextWidth(shorttitle)>gmenu2x.skinConfInt["linkWidth"]) { while (gmenu2x.font->getTextWidth(shorttitle+"..")>gmenu2x.skinConfInt["linkWidth"]) @@ -511,7 +514,7 @@ void Menu::deleteSelectedSection() string path = GMenu2X::getHome() + "/sections/" + sectionName; std::error_code ec; - if (!std::filesystem::remove(path, ec) && ec) { + if (!std::experimental::filesystem::remove(path, ec) && ec) { WARNING("Removal of section dir \"%s\" failed: %s\n", path.c_str(), ec.message().c_str()); } diff --git a/src/menusetting.cpp b/src/menusetting.cpp index 8b1cfb3..17e2499 100644 --- a/src/menusetting.cpp +++ b/src/menusetting.cpp @@ -52,5 +52,5 @@ void MenuSetting::drawSelected(int valueX, int y, int h) s.box(0, y, valueX - 5, h, gmenu2x.skinConfColors[COLOR_SELECTION_BG]); - buttonBox.paint(s, 5, gmenu2x.height() - 1); + buttonBox.paint(s, 5, gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2); } diff --git a/src/menusettingint.cpp b/src/menusettingint.cpp index 91524b2..ab58c0c 100644 --- a/src/menusettingint.cpp +++ b/src/menusettingint.cpp @@ -104,7 +104,7 @@ void MenuSettingInt::dec() void MenuSettingInt::setValue(int value) { - *_value = std::clamp(value,min,max); + *_value = stdx::clamp(value,min,max); stringstream ss; ss << *_value; strvalue = ""; diff --git a/src/menusettingrgba.cpp b/src/menusettingrgba.cpp index 17197bc..d531428 100644 --- a/src/menusettingrgba.cpp +++ b/src/menusettingrgba.cpp @@ -31,8 +31,6 @@ using std::string; using std::stringstream; using std::unique_ptr; -constexpr unsigned int COMPONENT_WIDTH = 28; - MenuSettingRGBA::MenuSettingRGBA( GMenu2X& gmenu2x, const string &name, const string &description, RGBAColor *value) @@ -59,10 +57,11 @@ void MenuSettingRGBA::draw(int valueX, int y, int h) { s.rectangle(valueX + 1, y + 2, h - 4, h - 4, 255,255,255,255); s.box(valueX + 2, y + 3, h - 6, h - 6, value()); auto& font = gmenu2x.font; - font->write(s, strR, valueX + h + COMPONENT_WIDTH - 2, y, Font::HAlignRight, Font::VAlignTop); - font->write(s, strG, valueX + h + COMPONENT_WIDTH * 2 - 2, y, Font::HAlignRight, Font::VAlignTop); - font->write(s, strB, valueX + h + COMPONENT_WIDTH * 3 - 2, y, Font::HAlignRight, Font::VAlignTop); - font->write(s, strA, valueX + h + COMPONENT_WIDTH * 4 - 2, y, Font::HAlignRight, Font::VAlignTop); + int fontpadding = font->getTextWidth("255")*1.1; + font->write(s, strR, valueX + h + fontpadding - 2, y, Font::HAlignRight, Font::VAlignTop); + font->write(s, strG, valueX + h + fontpadding * 2 - 2, y, Font::HAlignRight, Font::VAlignTop); + font->write(s, strB, valueX + h + fontpadding * 3 - 2, y, Font::HAlignRight, Font::VAlignTop); + font->write(s, strA, valueX + h + fontpadding * 4 - 2, y, Font::HAlignRight, Font::VAlignTop); } bool MenuSettingRGBA::handleButtonPress(InputManager::Button button) @@ -111,7 +110,7 @@ bool MenuSettingRGBA::handleButtonPress(InputManager::Button button) void MenuSettingRGBA::update_value(int value) { - setSelPart(std::clamp(getSelPart() + value, 0, 255)); + setSelPart(stdx::clamp(getSelPart() + value, 0, 255)); } void MenuSettingRGBA::dec() @@ -126,12 +125,12 @@ void MenuSettingRGBA::inc() void MenuSettingRGBA::leftComponent() { - selPart = std::clamp(selPart-1,0,3); + selPart = stdx::clamp(selPart-1,0,3); } void MenuSettingRGBA::rightComponent() { - selPart = std::clamp(selPart+1,0,3); + selPart = stdx::clamp(selPart+1,0,3); } void MenuSettingRGBA::setR(unsigned short r) @@ -193,7 +192,9 @@ unsigned short MenuSettingRGBA::getSelPart() void MenuSettingRGBA::drawSelected(int valueX, int y, int h) { - int x = valueX + selPart * COMPONENT_WIDTH; + auto& font = gmenu2x.font; + int fontpadding = font->getTextWidth("255")*1.1; + int x = valueX + selPart * fontpadding; RGBAColor color; switch (selPart) { default: /* fallthrough */ @@ -202,7 +203,7 @@ void MenuSettingRGBA::drawSelected(int valueX, int y, int h) case 2: color = RGBAColor( 0, 0, 255, 255); break; case 3: color = RGBAColor(128, 128, 128, 255); break; } - gmenu2x.s->box( x + h, y, COMPONENT_WIDTH, h, color ); + gmenu2x.s->box( x + h, y, fontpadding, h, color ); MenuSetting::drawSelected(valueX, y, h); } diff --git a/src/selector.cpp b/src/selector.cpp index a5c0252..dbb8cff 100644 --- a/src/selector.cpp +++ b/src/selector.cpp @@ -60,20 +60,21 @@ int Selector::exec(int startSelection) { OffscreenSurface bg(*gmenu2x.bg); drawTitleIcon(bg, link.getIconPath(), true); - writeTitle(bg, link.getTitle()); + writeTitle(bg, link.getShortTitle()); writeSubTitle(bg, link.getDescription()); int x = 5; + int y = gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2; if (fl.size() != 0) { - x = gmenu2x.drawButton(bg, "accept", gmenu2x.tr["Select"], x); + x = gmenu2x.drawButton(bg, "accept", gmenu2x.tr["Select"], x, y); } if (showDirectories) { - x = gmenu2x.drawButton(bg, "left", "", x); - x = gmenu2x.drawButton(bg, "cancel", gmenu2x.tr["Up one folder"], x); + x = gmenu2x.drawButton(bg, "left", "", x, y); + x = gmenu2x.drawButton(bg, "cancel", gmenu2x.tr["Up one folder"], x, y); } else { - x = gmenu2x.drawButton(bg, "cancel", "", x); + x = gmenu2x.drawButton(bg, "cancel", "", x, y); } - x = gmenu2x.drawButton(bg, "start", gmenu2x.tr["Exit"], x); + x = gmenu2x.drawButton(bg, "start", gmenu2x.tr["Exit"], x, y); (void)x; unsigned int top, height; @@ -94,7 +95,7 @@ int Selector::exec(int startSelection) { bg.convertToDisplayFormat(); unsigned int firstElement = 0; - unsigned int selected = std::clamp(startSelection, 0, (int)fl.size() - 1); + unsigned int selected = stdx::clamp(startSelection, 0, (int)fl.size() - 1); bool close = false, result = true; while (!close) { @@ -117,26 +118,26 @@ int Selector::exec(int startSelection) { string path = screendir + trimExtension(fl[selected]) + ".png"; auto screenshot = OffscreenSurface::loadImage(path, false); if (screenshot) { - screenshot->blitRight(s, 320, 0, 320, 240, 128u); + screenshot->blitRight(s, gmenu2x.width(), 0, gmenu2x.width(), gmenu2x.height(), 128u); } } //Selection int iY = top + (selected - firstElement) * lineHeight; if (selectedblit(s, x, iY + (lineHeight - folderIcon->height()) / 2); - x += folderIcon->width() + 2; + x += folderIcon->width() * 1.2; } gmenu2x.font->write(s, fl[i], x, iY + lineHeight / 2, diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index ef59522..7904243 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -62,13 +62,10 @@ bool SettingsDialog::exec() { bg.blit(s, 0, 0); - gmenu2x.drawTopBar(s); //link icon drawTitleIcon(s, icon); writeTitle(s, text); - gmenu2x.drawBottomBar(s); - if (sel>firstElement+numRows-1) firstElement=sel-numRows+1; if (sel> pageStatus; pageStatus = gmenu2x.tr["Page"]+": "+pageStatus+"/"+spagecount; - gmenu2x.font->write(s, pageStatus, 310, 230, Font::HAlignRight, Font::VAlignMiddle); + gmenu2x.font->write(s, pageStatus, gmenu2x.width() * .97, gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2, Font::HAlignRight, Font::VAlignMiddle); s.flip(); diff --git a/src/utilities.cpp b/src/utilities.cpp index 9bbd793..b7ecd9d 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -35,7 +35,7 @@ #include #include #include -#include +#include #include using namespace std; @@ -191,7 +191,7 @@ int evalIntConf (ConfIntHash& hash, const std::string &key, int def, int imin, i if (it == hash.end()) { return hash[key] = def; } else { - return it->second = std::clamp(it->second, imin, imax); + return it->second = stdx::clamp(it->second, imin, imax); } } @@ -234,7 +234,7 @@ string cmdclean (string cmdline) { int intTransition(int from, int to, long tickStart, long duration, long tickNow) { if (tickNow<0) tickNow = SDL_GetTicks(); - return std::clamp((int)(((tickNow-tickStart) * (to-from)) / duration), from, to); + return stdx::clamp((int)(((tickNow-tickStart) * (to-from)) / duration), from, to); // elapsed increments } diff --git a/src/utilities.h b/src/utilities.h index 94c231e..530a2fa 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -26,6 +26,7 @@ #include #include "inputmanager.h" +#include "cpp_backports.h" using ConfStrHash = std::unordered_map; using ConfIntHash = std::unordered_map; diff --git a/src/wallpaperdialog.cpp b/src/wallpaperdialog.cpp index a9814fe..6eb5e14 100644 --- a/src/wallpaperdialog.cpp +++ b/src/wallpaperdialog.cpp @@ -32,35 +32,26 @@ using namespace std; -WallpaperDialog::WallpaperDialog(GMenu2X& gmenu2x) +WallpaperDialog::WallpaperDialog(GMenu2X& gmenu2x, + const string &text_, + const vector &wallpapers_, + const string &icon) : Dialog(gmenu2x) + , text(text_) + , wallpapers(wallpapers_) { -} - -bool WallpaperDialog::exec() -{ - bool close = false, result = true; - - FileLister fl; - fl.setShowDirectories(false); - fl.setFilter("png"); - - fl.browse(gmenu2x.getLocalSkinPath(gmenu2x.confStr["skin"]) - + "/wallpapers", true); - fl.browse(gmenu2x.getSystemSkinPath(gmenu2x.confStr["skin"]) - + "/wallpapers", false); - - if (gmenu2x.confStr["skin"] != "Default") { - fl.browse(gmenu2x.getLocalSkinPath("Default") - + "/wallpapers", false); - fl.browse(gmenu2x.getSystemSkinPath("Default") - + "/wallpapers", false); + if (!icon.empty()) { + this->icon = icon; + } else { + this->icon = "icons/generic.png"; } +} - vector wallpapers = fl.getFiles(); - - DEBUG("Wallpapers: %zd\n", wallpapers.size()); +bool WallpaperDialog::exec() { + OffscreenSurface bg(*gmenu2x.bg); + bg.convertToDisplayFormat(); + bool close = false, result = true; uint32_t i, selected = 0, firstElement = 0, iY; ButtonBox buttonbox; @@ -75,31 +66,26 @@ bool WallpaperDialog::exec() while (!close) { OutputSurface& s = *gmenu2x.s; - + bg.blit(s, 0, 0); + + drawTitleIcon(s, icon); + writeTitle(s, text); + writeSubTitle(s, gmenu2x.tr["Select a wallpaper from the list"]); + if (selected > firstElement + nb_elements - 1) firstElement = selected - nb_elements + 1; if (selected < firstElement) firstElement = selected; - //Wallpaper - gmenu2x.sc[((string)"skin:wallpapers/" + wallpapers[selected]).c_str()]->blit(s, 0, 0); - - gmenu2x.drawTopBar(s); - gmenu2x.drawBottomBar(s); - - drawTitleIcon(s, "icons/wallpaper.png", true); - writeTitle(s, gmenu2x.tr["Wallpaper selection"]); - writeSubTitle(s, gmenu2x.tr["Select a wallpaper from the list"]); - - buttonbox.paint(s, 5, gmenu2x.height() - 1); + buttonbox.paint(s, 5, gmenu2x.height() - gmenu2x.skinConfInt["bottomBarHeight"] / 2); //Selection iY = selected - firstElement; iY = top + (iY * fontheight); - s.box(2, iY, 308, fontheight, gmenu2x.skinConfColors[COLOR_SELECTION_BG]); + s.box(2, iY, gmenu2x.width() - 12, fontheight, gmenu2x.skinConfColors[COLOR_SELECTION_BG]); //Files & Directories - s.setClipRect(0, top, 311, height); + s.setClipRect(0, top, gmenu2x.width() - 9, height); for (i = firstElement; i < wallpapers.size() && i < firstElement + nb_elements; i++) { iY = i-firstElement; diff --git a/src/wallpaperdialog.h b/src/wallpaperdialog.h index 6b6532c..169960d 100644 --- a/src/wallpaperdialog.h +++ b/src/wallpaperdialog.h @@ -24,10 +24,18 @@ #include "dialog.h" #include +#include class WallpaperDialog : protected Dialog { +private: + std::vector wallpapers; + std::string text, icon; + public: - WallpaperDialog(GMenu2X& gmenu2x); + WallpaperDialog(GMenu2X& gmenu2x, + const std::string &text, + const std::vector &wallpapers, + const std::string &icon = "skin:icons/wallpaper.png"); std::string wallpaper; bool exec();