From 5ab0e6f2ac32f72240067a1d36dad211f9ba92f4 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Wed, 2 Nov 2011 01:02:56 -0200 Subject: [PATCH] reorganize modules --- .../aboutwindow.otui} | 0 modules/background/background.lua | 22 ++++++++ modules/background/background.otmod | 18 +++++++ .../background.otui} | 10 +--- .../ui => background}/background.png | Bin modules/console/console.otmod | 1 - modules/core/core.otmod | 10 ++-- modules/{gfx => core}/gfx.lua | 0 modules/{core_ui => core}/ui.lua | 8 --- modules/core_fonts/core_fonts.otmod | 2 - modules/core_fonts/sans-11px-antialised.png | Bin 0 -> 9954 bytes modules/core_fonts/terminus-14px-bold.otfont | 1 - .../core_fonts/verdana-11px-antialised.otfont | 2 +- .../core_fonts/verdana-11px-monochrome.otfont | 2 +- .../core_fonts/verdana-11px-rounded.otfont | 2 +- modules/core_styles/core_styles.otmod | 17 +++++++ .../{core_ui => core_styles}/icons/about.png | Bin .../{core_ui => core_styles}/icons/exit.png | Bin .../{core_ui => core_styles}/icons/login.png | Bin .../{core_ui => core_styles}/icons/logout.png | Bin .../icons/settings.png | Bin .../images/button.png | Bin .../images/button_down.png | Bin .../images/button_hover.png | Bin .../images/container_bg.png | Bin .../images/empty_rect.png | Bin .../images/empty_rounded_rect.png | Bin .../images/horizontal_separator.png | Bin .../images/horizotal_separator.png | Bin .../images/panel_flat.png | Bin .../images/panel_rounded.png | Bin .../images/top_button.png | Bin .../images/top_panel.png | Bin .../images/window.png | Bin .../styles/buttons.otui | 12 ++--- .../styles/labels.otui | 0 .../styles/lineedits.otui | 2 +- modules/core_styles/styles/listboxes.otui | 5 ++ .../styles/panels.otui | 8 +-- .../styles/separators.otui | 2 +- .../styles/windows.otui | 2 +- modules/core_ui/core_ui.otmod | 13 ----- modules/core_ui/images/topbar.png | Bin 171 -> 0 bytes modules/core_ui/styles/listboxes.otui | 5 -- .../{mainmenu => entergame}/characterlist.lua | 4 +- .../characterlist.otui} | 8 +-- modules/{mainmenu => entergame}/entergame.lua | 27 +++++----- modules/entergame/entergame.otmod | 21 ++++++++ .../entergame.otui} | 6 +-- modules/game/game.lua | 6 +-- modules/game/game.otmod | 6 +-- modules/game/ui/gameinterface.otui | 10 ++-- modules/gfx/gfx.otmod | 15 ------ modules/mainmenu/mainmenu.lua | 22 -------- modules/mainmenu/mainmenu.otmod | 27 ---------- modules/mainmenu/ui/loginpanel.otui | 47 ------------------ modules/mainmenu/ui/otclient_logo.png | Bin 5500 -> 0 bytes .../ui => options}/optionswindow.otui | 0 modules/playground/playground.lua | 2 +- modules/topmenu/topmenu.otui | 14 ++++-- 60 files changed, 149 insertions(+), 210 deletions(-) rename modules/{mainmenu/ui/infowindow.otui => about/aboutwindow.otui} (100%) create mode 100644 modules/background/background.lua create mode 100644 modules/background/background.otmod rename modules/{mainmenu/ui/mainmenu.otui => background/background.otui} (59%) rename modules/{mainmenu/ui => background}/background.png (100%) rename modules/{gfx => core}/gfx.lua (100%) rename modules/{core_ui => core}/ui.lua (62%) create mode 100644 modules/core_fonts/sans-11px-antialised.png create mode 100644 modules/core_styles/core_styles.otmod rename modules/{core_ui => core_styles}/icons/about.png (100%) rename modules/{core_ui => core_styles}/icons/exit.png (100%) rename modules/{core_ui => core_styles}/icons/login.png (100%) rename modules/{core_ui => core_styles}/icons/logout.png (100%) rename modules/{core_ui => core_styles}/icons/settings.png (100%) rename modules/{core_ui => core_styles}/images/button.png (100%) rename modules/{core_ui => core_styles}/images/button_down.png (100%) rename modules/{core_ui => core_styles}/images/button_hover.png (100%) rename modules/{core_ui => core_styles}/images/container_bg.png (100%) rename modules/{core_ui => core_styles}/images/empty_rect.png (100%) rename modules/{core_ui => core_styles}/images/empty_rounded_rect.png (100%) rename modules/{core_ui => core_styles}/images/horizontal_separator.png (100%) rename modules/{core_ui => core_styles}/images/horizotal_separator.png (100%) rename modules/{core_ui => core_styles}/images/panel_flat.png (100%) rename modules/{core_ui => core_styles}/images/panel_rounded.png (100%) rename modules/{core_ui => core_styles}/images/top_button.png (100%) rename modules/{core_ui => core_styles}/images/top_panel.png (100%) rename modules/{core_ui => core_styles}/images/window.png (100%) rename modules/{core_ui => core_styles}/styles/buttons.otui (68%) rename modules/{core_ui => core_styles}/styles/labels.otui (100%) rename modules/{core_ui => core_styles}/styles/lineedits.otui (79%) create mode 100644 modules/core_styles/styles/listboxes.otui rename modules/{core_ui => core_styles}/styles/panels.otui (56%) rename modules/{core_ui => core_styles}/styles/separators.otui (62%) rename modules/{core_ui => core_styles}/styles/windows.otui (78%) delete mode 100644 modules/core_ui/core_ui.otmod delete mode 100644 modules/core_ui/images/topbar.png delete mode 100644 modules/core_ui/styles/listboxes.otui rename modules/{mainmenu => entergame}/characterlist.lua (96%) rename modules/{mainmenu/ui/charlist.otui => entergame/characterlist.otui} (90%) rename modules/{mainmenu => entergame}/entergame.lua (77%) create mode 100644 modules/entergame/entergame.otmod rename modules/{mainmenu/ui/entergamewindow.otui => entergame/entergame.otui} (89%) delete mode 100644 modules/gfx/gfx.otmod delete mode 100644 modules/mainmenu/mainmenu.lua delete mode 100644 modules/mainmenu/mainmenu.otmod delete mode 100644 modules/mainmenu/ui/loginpanel.otui delete mode 100644 modules/mainmenu/ui/otclient_logo.png rename modules/{mainmenu/ui => options}/optionswindow.otui (100%) diff --git a/modules/mainmenu/ui/infowindow.otui b/modules/about/aboutwindow.otui similarity index 100% rename from modules/mainmenu/ui/infowindow.otui rename to modules/about/aboutwindow.otui diff --git a/modules/background/background.lua b/modules/background/background.lua new file mode 100644 index 00000000..9df08f07 --- /dev/null +++ b/modules/background/background.lua @@ -0,0 +1,22 @@ +Background = { } + +-- private variables +local background + +-- public functions +function Background.create() + background = UI.loadAndDisplay('/background/background.otui') +end + +function Background.destroy() + background:destroy() + background = nil +end + +function Background.hide() + background:hide() +end + +function Background.show() + background:show() +end diff --git a/modules/background/background.otmod b/modules/background/background.otmod new file mode 100644 index 00000000..8523717d --- /dev/null +++ b/modules/background/background.otmod @@ -0,0 +1,18 @@ +Module + name: background + description: Handles the background of the login screen + author: OTClient team + website: https://github.com/edubart/otclient + autoLoad: true + dependencies: + - core + - topmenu + + onLoad: | + require 'background' + Background.create() + return true + + onUnload: + Background.destroy() + diff --git a/modules/mainmenu/ui/mainmenu.otui b/modules/background/background.otui similarity index 59% rename from modules/mainmenu/ui/mainmenu.otui rename to modules/background/background.otui index 1e39566c..b81d91ac 100644 --- a/modules/mainmenu/ui/mainmenu.otui +++ b/modules/background/background.otui @@ -1,13 +1,7 @@ -MenuButton < Button - margin.bottom: 11 - margin.left: 20 - margin.right: 20 - - Panel - id: mainMenuBackground + id: background image: - source: /mainmenu/ui/background.png + source: /background/background.png smooth: true fixed ratio: true anchors.top: topMenu.bottom diff --git a/modules/mainmenu/ui/background.png b/modules/background/background.png similarity index 100% rename from modules/mainmenu/ui/background.png rename to modules/background/background.png diff --git a/modules/console/console.otmod b/modules/console/console.otmod index 95f86650..5f38397d 100644 --- a/modules/console/console.otmod +++ b/modules/console/console.otmod @@ -3,7 +3,6 @@ Module description: Console for executing lua functions author: OTClient team website: https://github.com/edubart/otclient - version: 0.2 autoLoad: true dependencies: - core diff --git a/modules/core/core.otmod b/modules/core/core.otmod index 291b0e64..02d49237 100644 --- a/modules/core/core.otmod +++ b/modules/core/core.otmod @@ -7,19 +7,17 @@ Module autoLoad: true dependencies: - core_fonts - - core_ui + - core_styles onLoad: | require 'ext/table' require 'ext/string' require 'constants' require 'util' + require 'dispatcher' require 'widget' + require 'ui' + require 'gfx' require 'messagebox/messagebox' - require 'dispatcher' - return true - onUnload: | - rootWidget = nil - diff --git a/modules/gfx/gfx.lua b/modules/core/gfx.lua similarity index 100% rename from modules/gfx/gfx.lua rename to modules/core/gfx.lua diff --git a/modules/core_ui/ui.lua b/modules/core/ui.lua similarity index 62% rename from modules/core_ui/ui.lua rename to modules/core/ui.lua index b80bfd72..535a1e7e 100644 --- a/modules/core_ui/ui.lua +++ b/modules/core/ui.lua @@ -20,11 +20,3 @@ function UI.displayLocked(widget) UI.root:addChild(widget) UI.root:lockChild(widget) end - -importStyles('styles/buttons.otui') -importStyles('styles/labels.otui') -importStyles('styles/panels.otui') -importStyles('styles/separators.otui') -importStyles('styles/lineedits.otui') -importStyles('styles/windows.otui') -importStyles('styles/listboxes.otui') diff --git a/modules/core_fonts/core_fonts.otmod b/modules/core_fonts/core_fonts.otmod index ed74aaee..42b7db29 100644 --- a/modules/core_fonts/core_fonts.otmod +++ b/modules/core_fonts/core_fonts.otmod @@ -3,8 +3,6 @@ Module description: Contains fonts used by core author: OTClient team website: https://github.com/edubart/otclient - version: 0.2 - autoLoad: true onLoad: | importFont('verdana-11px-antialised') importFont('verdana-11px-monochrome') diff --git a/modules/core_fonts/sans-11px-antialised.png b/modules/core_fonts/sans-11px-antialised.png new file mode 100644 index 0000000000000000000000000000000000000000..2178d6841253d99e53adf780c25c4bba0cb30f28 GIT binary patch literal 9954 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 F{|EHbSG)iK literal 0 HcmV?d00001 diff --git a/modules/core_fonts/terminus-14px-bold.otfont b/modules/core_fonts/terminus-14px-bold.otfont index 01107b8a..92a83003 100644 --- a/modules/core_fonts/terminus-14px-bold.otfont +++ b/modules/core_fonts/terminus-14px-bold.otfont @@ -1,7 +1,6 @@ Font name: terminus-14px-bold height: 16 - spacing: 0 0 top margin: 2 texture: terminus-14px-bold.png glyph size: 16 16 diff --git a/modules/core_fonts/verdana-11px-antialised.otfont b/modules/core_fonts/verdana-11px-antialised.otfont index 7707d3d9..19d3689d 100644 --- a/modules/core_fonts/verdana-11px-antialised.otfont +++ b/modules/core_fonts/verdana-11px-antialised.otfont @@ -1,7 +1,7 @@ Font name: verdana-11px-antialised - height: 14 texture: verdana-11px-antialised.png + height: 14 glyph size: 16 16 glyph widths: diff --git a/modules/core_fonts/verdana-11px-monochrome.otfont b/modules/core_fonts/verdana-11px-monochrome.otfont index 3f7d83f2..fefb1c03 100644 --- a/modules/core_fonts/verdana-11px-monochrome.otfont +++ b/modules/core_fonts/verdana-11px-monochrome.otfont @@ -1,7 +1,7 @@ Font name: verdana-11px-monochrome - height: 14 texture: verdana-11px-monochrome.png + height: 14 glyph size: 16 16 glyph widths: diff --git a/modules/core_fonts/verdana-11px-rounded.otfont b/modules/core_fonts/verdana-11px-rounded.otfont index 8d427ba4..7ca49b5d 100644 --- a/modules/core_fonts/verdana-11px-rounded.otfont +++ b/modules/core_fonts/verdana-11px-rounded.otfont @@ -1,7 +1,7 @@ Font name: verdana-11px-rounded - height: 14 texture: verdana-11px-rounded.png + height: 14 glyph size: 16 16 glyph widths: diff --git a/modules/core_styles/core_styles.otmod b/modules/core_styles/core_styles.otmod new file mode 100644 index 00000000..cf03de56 --- /dev/null +++ b/modules/core_styles/core_styles.otmod @@ -0,0 +1,17 @@ +Module + name: core_styles + description: Contains ui styles used by other modules + author: OTClient team + website: https://github.com/edubart/otclient + dependencies: + - core_fonts + onLoad: | + importStyles 'styles/buttons.otui' + importStyles 'styles/labels.otui' + importStyles 'styles/panels.otui' + importStyles 'styles/separators.otui' + importStyles 'styles/lineedits.otui' + importStyles 'styles/windows.otui' + importStyles 'styles/listboxes.otui' + return true + diff --git a/modules/core_ui/icons/about.png b/modules/core_styles/icons/about.png similarity index 100% rename from modules/core_ui/icons/about.png rename to modules/core_styles/icons/about.png diff --git a/modules/core_ui/icons/exit.png b/modules/core_styles/icons/exit.png similarity index 100% rename from modules/core_ui/icons/exit.png rename to modules/core_styles/icons/exit.png diff --git a/modules/core_ui/icons/login.png b/modules/core_styles/icons/login.png similarity index 100% rename from modules/core_ui/icons/login.png rename to modules/core_styles/icons/login.png diff --git a/modules/core_ui/icons/logout.png b/modules/core_styles/icons/logout.png similarity index 100% rename from modules/core_ui/icons/logout.png rename to modules/core_styles/icons/logout.png diff --git a/modules/core_ui/icons/settings.png b/modules/core_styles/icons/settings.png similarity index 100% rename from modules/core_ui/icons/settings.png rename to modules/core_styles/icons/settings.png diff --git a/modules/core_ui/images/button.png b/modules/core_styles/images/button.png similarity index 100% rename from modules/core_ui/images/button.png rename to modules/core_styles/images/button.png diff --git a/modules/core_ui/images/button_down.png b/modules/core_styles/images/button_down.png similarity index 100% rename from modules/core_ui/images/button_down.png rename to modules/core_styles/images/button_down.png diff --git a/modules/core_ui/images/button_hover.png b/modules/core_styles/images/button_hover.png similarity index 100% rename from modules/core_ui/images/button_hover.png rename to modules/core_styles/images/button_hover.png diff --git a/modules/core_ui/images/container_bg.png b/modules/core_styles/images/container_bg.png similarity index 100% rename from modules/core_ui/images/container_bg.png rename to modules/core_styles/images/container_bg.png diff --git a/modules/core_ui/images/empty_rect.png b/modules/core_styles/images/empty_rect.png similarity index 100% rename from modules/core_ui/images/empty_rect.png rename to modules/core_styles/images/empty_rect.png diff --git a/modules/core_ui/images/empty_rounded_rect.png b/modules/core_styles/images/empty_rounded_rect.png similarity index 100% rename from modules/core_ui/images/empty_rounded_rect.png rename to modules/core_styles/images/empty_rounded_rect.png diff --git a/modules/core_ui/images/horizontal_separator.png b/modules/core_styles/images/horizontal_separator.png similarity index 100% rename from modules/core_ui/images/horizontal_separator.png rename to modules/core_styles/images/horizontal_separator.png diff --git a/modules/core_ui/images/horizotal_separator.png b/modules/core_styles/images/horizotal_separator.png similarity index 100% rename from modules/core_ui/images/horizotal_separator.png rename to modules/core_styles/images/horizotal_separator.png diff --git a/modules/core_ui/images/panel_flat.png b/modules/core_styles/images/panel_flat.png similarity index 100% rename from modules/core_ui/images/panel_flat.png rename to modules/core_styles/images/panel_flat.png diff --git a/modules/core_ui/images/panel_rounded.png b/modules/core_styles/images/panel_rounded.png similarity index 100% rename from modules/core_ui/images/panel_rounded.png rename to modules/core_styles/images/panel_rounded.png diff --git a/modules/core_ui/images/top_button.png b/modules/core_styles/images/top_button.png similarity index 100% rename from modules/core_ui/images/top_button.png rename to modules/core_styles/images/top_button.png diff --git a/modules/core_ui/images/top_panel.png b/modules/core_styles/images/top_panel.png similarity index 100% rename from modules/core_ui/images/top_panel.png rename to modules/core_styles/images/top_panel.png diff --git a/modules/core_ui/images/window.png b/modules/core_styles/images/window.png similarity index 100% rename from modules/core_ui/images/window.png rename to modules/core_styles/images/window.png diff --git a/modules/core_ui/styles/buttons.otui b/modules/core_styles/styles/buttons.otui similarity index 68% rename from modules/core_ui/styles/buttons.otui rename to modules/core_styles/styles/buttons.otui index 8305969a..4551809c 100644 --- a/modules/core_ui/styles/buttons.otui +++ b/modules/core_styles/styles/buttons.otui @@ -5,18 +5,18 @@ Button < UIButton size: 106 24 text-translate: 0 0 border-image: - source: /core_ui/images/button.png + source: /core_styles/images/button.png border: 5 state.hover: border-image: - source: /core_ui/images/button_hover.png + source: /core_styles/images/button_hover.png border: 5 state.pressed: text-translate: 1 1 border-image: - source: /core_ui/images/button_down.png + source: /core_styles/images/button_down.png border: 5 state.disabled: @@ -28,13 +28,13 @@ TopButton < UIButton size: 26 25 text-translate: 0 0 border-image: - source: /core_ui/images/top_button.png + source: /core_styles/images/top_button.png size: 26 25 border: 3 state.hover: border-image: - source: /core_ui/images/top_button.png + source: /core_styles/images/top_button.png size: 26 25 offset: 26 0 border: 3 @@ -42,7 +42,7 @@ TopButton < UIButton state.pressed: text-translate: 1 1 border-image: - source: /core_ui/images/top_button.png + source: /core_styles/images/top_button.png size: 26 25 offset: 52 0 border: 3 diff --git a/modules/core_ui/styles/labels.otui b/modules/core_styles/styles/labels.otui similarity index 100% rename from modules/core_ui/styles/labels.otui rename to modules/core_styles/styles/labels.otui diff --git a/modules/core_ui/styles/lineedits.otui b/modules/core_styles/styles/lineedits.otui similarity index 79% rename from modules/core_ui/styles/lineedits.otui rename to modules/core_styles/styles/lineedits.otui index a8f3dabd..6bf81f26 100644 --- a/modules/core_ui/styles/lineedits.otui +++ b/modules/core_styles/styles/lineedits.otui @@ -4,7 +4,7 @@ LineEdit < UILineEdit size: 86 20 text margin: 3 border-image: - source: /core_ui/images/panel_flat.png + source: /core_styles/images/panel_flat.png border: 1 PasswordLineEdit < LineEdit diff --git a/modules/core_styles/styles/listboxes.otui b/modules/core_styles/styles/listboxes.otui new file mode 100644 index 00000000..1c7c980c --- /dev/null +++ b/modules/core_styles/styles/listboxes.otui @@ -0,0 +1,5 @@ +TextList < UIWidget + layout: verticalBox + border-image: + source: /core_styles/images/panel_flat.png + border: 4 \ No newline at end of file diff --git a/modules/core_ui/styles/panels.otui b/modules/core_styles/styles/panels.otui similarity index 56% rename from modules/core_ui/styles/panels.otui rename to modules/core_styles/styles/panels.otui index 365eb86e..9baaf638 100644 --- a/modules/core_ui/styles/panels.otui +++ b/modules/core_styles/styles/panels.otui @@ -3,21 +3,21 @@ Panel < UIWidget FlatPanel < Panel border-image: - source: /core_ui/images/panel_flat.png + source: /core_styles/images/panel_flat.png border: 4 TopPanel < Panel height: 34 image: - source: /core_ui/images/top_panel.png + source: /core_styles/images/top_panel.png repeated: true RoundedPanel < Panel background-color: #ffffffdd border-image: - source: /core_ui/images/panel_rounded.png + source: /core_styles/images/panel_rounded.png border: 4 RectPanel < UIWidget - image: /core_ui/images/empty_rect.png \ No newline at end of file + image: /core_styles/images/empty_rect.png \ No newline at end of file diff --git a/modules/core_ui/styles/separators.otui b/modules/core_styles/styles/separators.otui similarity index 62% rename from modules/core_ui/styles/separators.otui rename to modules/core_styles/styles/separators.otui index 144c78c6..c2593730 100644 --- a/modules/core_ui/styles/separators.otui +++ b/modules/core_styles/styles/separators.otui @@ -1,6 +1,6 @@ HorizontalSeparator < UIWidget border-image: - source: /core_ui/images/horizontal_separator.png + source: /core_styles/images/horizontal_separator.png border.top: 2 height: 2 phantom: true diff --git a/modules/core_ui/styles/windows.otui b/modules/core_styles/styles/windows.otui similarity index 78% rename from modules/core_ui/styles/windows.otui rename to modules/core_styles/styles/windows.otui index a100c52a..a23bf97e 100644 --- a/modules/core_ui/styles/windows.otui +++ b/modules/core_styles/styles/windows.otui @@ -6,7 +6,7 @@ Window < UIWindow head height: 20 head text align: center border-image: - source: /core_ui/images/window.png + source: /core_styles/images/window.png border: 4 border.top: 20 diff --git a/modules/core_ui/core_ui.otmod b/modules/core_ui/core_ui.otmod deleted file mode 100644 index 1b0fb1ef..00000000 --- a/modules/core_ui/core_ui.otmod +++ /dev/null @@ -1,13 +0,0 @@ -Module - name: core_ui - description: Contains ui styles used by other modules - author: OTClient team - website: https://github.com/edubart/otclient - version: 0.2 - autoLoad: true - dependencies: - - core_fonts - onLoad: | - require 'ui' - return true - diff --git a/modules/core_ui/images/topbar.png b/modules/core_ui/images/topbar.png deleted file mode 100644 index a4ccc8f2a8a9b2cd08cfd31ea00585a9dbe9573c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 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