From 44bc01682e5f8cefbea7406e359b67b7f3be4685 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Mon, 16 Apr 2018 22:47:37 +0100 Subject: [PATCH] [Change] Changed GUI coords to be sensible top-left (0,0). [Change] Some GUI cleanup. --- src/generic_system_view.cpp | 10 ++++----- src/gui_button.cpp | 20 ++++++++--------- src/gui_fixed.cpp | 4 ++-- src/gui_image.cpp | 12 +++++----- src/gui_screen.cpp | 32 +++++++++++++++++++++------ src/gui_screen.h | 1 + src/gui_toggle_button.cpp | 44 ++++++++++++++++++------------------- src/gui_tooltip.cpp | 6 ++--- src/gui_widget.cpp | 24 ++++++++++++++++++++ src/gui_widget.h | 2 ++ src/info_view.cpp | 5 +---- src/main.cpp | 12 +++++----- src/player.cpp | 9 +++----- src/sector_view.cpp | 2 +- src/ship_cpanel.cpp | 26 +++++++++++----------- src/space_station_view.cpp | 12 +++++----- src/system_info_view.cpp | 12 +++------- src/system_view.cpp | 2 +- src/view.h | 6 ++--- 19 files changed, 136 insertions(+), 105 deletions(-) diff --git a/src/generic_system_view.cpp b/src/generic_system_view.cpp index 717ec19..4d1252b 100644 --- a/src/generic_system_view.cpp +++ b/src/generic_system_view.cpp @@ -7,23 +7,23 @@ GenericSystemView::GenericSystemView(void) : View() { px = py = pidx = 0xdeadbeef; m_scannerLayout = new Gui::Fixed(360, 60); m_scannerLayout->SetTransparency(true); - Gui::Screen::AddBaseWidget(m_scannerLayout, 140, 2); + Gui::Screen::AddBaseWidget(m_scannerLayout, 140, Gui::Screen::GetHeight()-62); m_systemName = new Gui::Label(""); m_systemName->SetColor(1, 1, 0); - m_scannerLayout->Add(m_systemName, 40, 44); + m_scannerLayout->Add(m_systemName, 40, 4); m_distance = new Gui::Label(""); m_distance->SetColor(1, 0, 0); - m_scannerLayout->Add(m_distance, 150, 44); + m_scannerLayout->Add(m_distance, 150, 4); m_starType = new Gui::Label(""); m_starType->SetColor(1, 0, 1); - m_scannerLayout->Add(m_starType, 22, 26); + m_scannerLayout->Add(m_starType, 22, 20); m_shortDesc = new Gui::Label(""); m_shortDesc->SetColor(1, 0, 1); - m_scannerLayout->Add(m_shortDesc, 5, 8); + m_scannerLayout->Add(m_shortDesc, 5, 38); } void GenericSystemView::Draw3D(void) { diff --git a/src/gui_button.cpp b/src/gui_button.cpp index 6cc64a6..f2d7e5c 100644 --- a/src/gui_button.cpp +++ b/src/gui_button.cpp @@ -64,22 +64,22 @@ void TransparentButton::GetSizeRequested(float size[2]) { void SolidButton::Draw(void) { glBegin(GL_QUADS); glColor3f(.6, .6, .6); - glVertex2f(0, 0); - glVertex2f(15, 0); - glVertex2f(15, 15); glVertex2f(0, 15); + glVertex2f(15, 15); + glVertex2f(15, 0); + glVertex2f(0, 0); glColor3fv(Color::bgShadow); - glVertex2f(2, 0); - glVertex2f(15, 0); - glVertex2f(15, 13); - glVertex2f(2, 13); + glVertex2f(2, 15); + glVertex2f(15, 15); + glVertex2f(15, 2); + glVertex2f(2, 2); glColor3fv(Color::bg); - glVertex2f(2, 2); - glVertex2f(13, 2); - glVertex2f(13, 13); glVertex2f(2, 13); + glVertex2f(13, 13); + glVertex2f(13, 2); + glVertex2f(2, 2); glEnd(); } diff --git a/src/gui_fixed.cpp b/src/gui_fixed.cpp index f939e90..5e9b0c0 100644 --- a/src/gui_fixed.cpp +++ b/src/gui_fixed.cpp @@ -23,9 +23,9 @@ void Fixed::Draw(void) { if(!m_transparent) { glBegin(GL_QUADS); glColor3f(m_bgcol[0], m_bgcol[1], m_bgcol[2]); - glVertex2f(m_w, 0); - glVertex2f(m_w, m_h); glVertex2f(0, m_h); + glVertex2f(m_w, m_h); + glVertex2f(m_w, 0); glVertex2f(0, 0); glEnd(); } diff --git a/src/gui_image.cpp b/src/gui_image.cpp index 84aa81e..512fc72 100644 --- a/src/gui_image.cpp +++ b/src/gui_image.cpp @@ -86,13 +86,13 @@ void Image::Draw(void) { float w = m_imgw * m_invtexw; float h = m_imgh * m_invtexh; glTexCoord2f(0, h); - glVertex2f(0, 0); - glTexCoord2f(w, h); - glVertex2f(allocSize[0],0); - glTexCoord2f(w, 0); - glVertex2f(allocSize[0], allocSize[1]); - glTexCoord2f(0, 0); glVertex2f(0, allocSize[1]); + glTexCoord2f(w, h); + glVertex2f(allocSize[0], allocSize[1]); + glTexCoord2f(w, 0); + glVertex2f(allocSize[0], 0); + glTexCoord2f(0, 0); + glVertex2f(0, 0); glEnd(); glDisable(GL_TEXTURE_2D); glDisable(GL_BLEND); diff --git a/src/gui_screen.cpp b/src/gui_screen.cpp index 34f5b92..41e792b 100644 --- a/src/gui_screen.cpp +++ b/src/gui_screen.cpp @@ -38,7 +38,7 @@ GLint Screen::Project(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdoubl GLint o = gluProject(objX, objY, objZ, model, proj, view, winX, winY, winZ); *winX = (*winX) * width * invRealWidth; - *winY = (*winY) * height * invRealHeight; + *winY = GetHeight()- (*winY) * height * invRealHeight; return o; } @@ -48,7 +48,7 @@ void Screen::EnterOrtho(void) { glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); - glOrtho(0, width, 0, height, -1, 1); + glOrtho(0, width, height,0, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); @@ -81,7 +81,7 @@ void Screen::RemoveBaseWidget(Widget* w) { } void Screen::SDLEventCoordToScreenCoord(int sdlev_x, int sdlev_y, float* x, float* y) { - *y = height-(sdlev_y*height*invRealHeight); + *y = sdlev_y*height*invRealHeight; *x = sdlev_x*width*invRealWidth; } @@ -126,6 +126,10 @@ void Screen::OnKeyDown(const SDL_keysym* sym) { } } +float Screen::GetFontHeight(void) { + return font->GetHeight()*Screen::font_ysize; +} + void Screen::MeasureString(const std::string& s, float& w, float& h) { font->MeasureString(s.c_str(), w, h); w *= Screen::font_xsize; @@ -134,15 +138,25 @@ void Screen::MeasureString(const std::string& s, float& w, float& h) { void Screen::RenderString(const std::string& s) { glPushMatrix(); - glScalef(Screen::font_xsize, Screen::font_ysize, 1); + { + glTranslatef(0, Screen::font_ysize*Screen::font->GetHeight(),0); + glScalef(Screen::font_xsize, -Screen::font_ysize,1); + glDisable(GL_CULL_FACE); + } font->RenderString(s.c_str()); + glEnable(GL_CULL_FACE); glPopMatrix(); } void Screen::RenderMarkup(const std::string& s) { glPushMatrix(); - glScalef(Screen::font_xsize, Screen::font_ysize, 1); + { + glTranslatef(0, Screen::font_ysize*Screen::font->GetHeight(), 0); + glScalef(Screen::font_xsize, -Screen::font_ysize, 1); + glDisable(GL_CULL_FACE); + } font->RenderMarkup(s.c_str()); + glEnable(GL_CULL_FACE); glPopMatrix(); } @@ -157,12 +171,14 @@ bool Screen::CanPutLabel(float x, float y) { void Screen::RenderLabel(const std::string& s, float x, float y) { if(CanPutLabel(x, y)) { labelPositions.push_back(LabelPos(x, y)); + glDisable(GL_CULL_FACE); glPushMatrix(); glTranslatef(x, y, 0); - glScalef(Screen::font_xsize, Screen::font_ysize, 1); + glScalef(Screen::font_xsize, -Screen::font_ysize, 1); glTranslatef(0.5*font->GetWidth(), -0.4*font->GetHeight(), 0); font->RenderString(s.c_str()); glPopMatrix(); + glEnable(GL_CULL_FACE); } } @@ -173,12 +189,14 @@ void Screen::PutClickableLabel(const std::string& s, float x, float y, LabelPos p = LabelPos(x, y); p.onClick.connect(slot); labelPositions.push_back(p); + glDisable(GL_CULL_FACE); glPushMatrix(); glTranslatef(x, y, 0); - glScalef(Screen::font_xsize, Screen::font_ysize, 1); + glScalef(Screen::font_xsize, -Screen::font_ysize, 1); glTranslatef(0.5*font->GetWidth(), -0.4*font->GetHeight(), 0); font->RenderString(s.c_str()); glPopMatrix(); + glEnable(GL_CULL_FACE); } } diff --git a/src/gui_screen.h b/src/gui_screen.h index cba4444..5a4e0c3 100644 --- a/src/gui_screen.h +++ b/src/gui_screen.h @@ -24,6 +24,7 @@ namespace Gui { static void LeaveOrtho(void); static int GetWidth(void) { return width; } static int GetHeight(void) { return height; } + static float GetFontHeight(void); /* gluProject but fixes UI/screen size mismatch. */ static GLint Project(GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble* model, const GLdouble* proj, const GLint* view, GLdouble* winX, diff --git a/src/gui_toggle_button.cpp b/src/gui_toggle_button.cpp index 2903113..1d908d9 100644 --- a/src/gui_toggle_button.cpp +++ b/src/gui_toggle_button.cpp @@ -40,43 +40,43 @@ void ToggleButton::GetSizeRequested(float size[2]) { void ToggleButton::Draw(void) { if(m_pressed) { glBegin(GL_QUADS); - glColor3fv(Color::bgShadow); - glVertex2f(0, 0); - glVertex2f(15, 0); - glVertex2f(15, 15); - glVertex2f(0, 15); - glColor3f(.6, .6, .6); - glVertex2f(2, 0); + glVertex2f(0, 15); + glVertex2f(15, 15); glVertex2f(15, 0); - glVertex2f(15, 13); - glVertex2f(2, 13); + glVertex2f(0, 0); + + glColor3fv(Color::bgShadow); + glVertex2f(0, 13); + glVertex2f(13, 13); + glVertex2f(13, 0); + glVertex2f(0, 0); glColor3fv(Color::bg); - glVertex2f(2, 2); - glVertex2f(13, 2); - glVertex2f(13, 13); glVertex2f(2, 13); + glVertex2f(13, 13); + glVertex2f(13, 2); + glVertex2f(2, 2); glEnd(); } else { glBegin(GL_QUADS); glColor3f(.6, .6, .6); - glVertex2f(0, 0); - glVertex2f(15, 0); - glVertex2f(15, 15); glVertex2f(0, 15); + glVertex2f(15, 15); + glVertex2f(15, 0); + glVertex2f(0, 0); glColor3fv(Color::bgShadow); - glVertex2f(2, 0); - glVertex2f(15, 0); - glVertex2f(15, 13); - glVertex2f(2, 13); + glVertex2f(2, 15); + glVertex2f(15, 15); + glVertex2f(15, 2); + glVertex2f(2, 2); glColor3fv(Color::bg); - glVertex2f(2, 2); - glVertex2f(13, 2); - glVertex2f(13, 13); glVertex2f(2, 13); + glVertex2f(13, 13); + glVertex2f(13, 2); + glVertex2f(2, 2); glEnd(); } } diff --git a/src/gui_tooltip.cpp b/src/gui_tooltip.cpp index cca3b01..da91acd 100644 --- a/src/gui_tooltip.cpp +++ b/src/gui_tooltip.cpp @@ -41,10 +41,10 @@ void ToolTip::Draw(void) { GetSize(size); glColor4f(.2, .2, .6, alpha); glBegin(GL_QUADS); - glVertex2f(size[0], 0); - glVertex2f(size[0], size[1]); - glVertex2f(0, size[1]); glVertex2f(0, 0); + glVertex2f(0, size[1]); + glVertex2f(size[0], size[1]); + glVertex2f(size[0], 0); glEnd(); glColor4f(.0, .0, .8, alpha); glBegin(GL_LINE_LOOP); diff --git a/src/gui_widget.cpp b/src/gui_widget.cpp index 67bf0aa..2674c79 100644 --- a/src/gui_widget.cpp +++ b/src/gui_widget.cpp @@ -11,6 +11,30 @@ Widget::Widget(void) { m_tooltipTimerSignal.connect(sigc::mem_fun(this, &Widget::OnToolTip)); } +void Widget::SetClipping(float width, float height) { + const GLdouble eqn1[4] = { 1, 0, 0, 0 }; + const GLdouble eqn2[4] = { 0, 1, 0, 0 }; + const GLdouble eqn3[4] = { -1, 0, 0, 0 }; + const GLdouble eqn4[4] = { 0, -1, 0, 0 }; + glClipPlane(GL_CLIP_PLANE0, eqn1); + glClipPlane(GL_CLIP_PLANE1, eqn2); + glPushMatrix(); + glTranslatef(width, height, 0); + glClipPlane(GL_CLIP_PLANE2, eqn3); + glClipPlane(GL_CLIP_PLANE3, eqn4); + glPopMatrix(); + glEnable(GL_CLIP_PLANE0); + glEnable(GL_CLIP_PLANE1); + glEnable(GL_CLIP_PLANE2); + glEnable(GL_CLIP_PLANE3); +} + +void Widget::EndClipping(void) { + glDisable(GL_CLIP_PLANE0); + glDisable(GL_CLIP_PLANE1); + glDisable(GL_CLIP_PLANE3); +} + void Widget::SetShortcut(SDLKey key, SDLMod mod) { m_shortcut.sym = key; m_shortcut.mod = mod; diff --git a/src/gui_widget.h b/src/gui_widget.h index 28e8f8a..9dcbf63 100644 --- a/src/gui_widget.h +++ b/src/gui_widget.h @@ -16,6 +16,8 @@ namespace Gui { void GetSize(float size[2]) { size[0] = m_size.w; size[1] = m_size.h; } void SetSize(float w, float h) { m_size.w = w; m_size.h = h; }; void SetShortcut(SDLKey key, SDLMod mod); + void SetClipping(float width, float height); + void EndClipping(void); virtual void Show(void) { m_visible = true; } virtual void Hide(void); bool IsVisible(void) { return m_visible; } diff --git a/src/info_view.cpp b/src/info_view.cpp index a168f8b..781eabe 100644 --- a/src/info_view.cpp +++ b/src/info_view.cpp @@ -7,11 +7,8 @@ InfoView::InfoView(void) : View() { SetTransparency(true); - float size[2]; - GetSize(size); - info1 = new Gui::Label("Some star stuff."); - Add(info1, 40, size[1]-40); + Add(info1, 40, 40); } void InfoView::UpdateInfo(void) { diff --git a/src/main.cpp b/src/main.cpp index 1d91b14..cc0339e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -362,14 +362,14 @@ void L3D::Start(void) { opts[1] = new Gui::ToggleButton(); opts[1]->SetShortcut(SDLK_2, KMOD_NONE); opts[2] = new Gui::ToggleButton(); opts[2]->SetShortcut(SDLK_3, KMOD_NONE); opts[3] = new Gui::ToggleButton(); opts[3]->SetShortcut(SDLK_4, KMOD_NONE); - splash->Add(opts[0], w, h+64); - splash->Add(new Gui::Label("New game starting on Earth"), w+32, h+64); - splash->Add(opts[1], w, h+32); - splash->Add(new Gui::Label("New game starting on debug point"), w+32, h+32); + splash->Add(opts[0], w, h-64); + splash->Add(new Gui::Label("New game starting on Earth"), w+32, h-64); + splash->Add(opts[1], w, h-32); + splash->Add(new Gui::Label("New game starting on debug point"), w+32, h-32); splash->Add(opts[2], w, h); splash->Add(new Gui::Label("Load quicksave"), w+32, h); - splash->Add(opts[3], w, h-32); - splash->Add(new Gui::Label("Quit"), w+32, h-32); + splash->Add(opts[3], w, h+32); + splash->Add(new Gui::Label("Quit"), w+32, h+32); splash->ShowAll(); diff --git a/src/player.cpp b/src/player.cpp index 6d36ff5..cf0efa9 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -286,8 +286,6 @@ void Player::DrawHUD(const Frame* cam_frame) { if(L3D::showDebugInfo) { char buf[1024]; - glPushMatrix(); - glTranslatef(0, 440, 0); vector3d pos = GetPosition(); vector3d abs_pos = GetPositionRelTo(Space::GetRootFrame()); const char* rel_to = (GetFrame() ? GetFrame()->GetLabel() : "System"); @@ -298,7 +296,6 @@ void Player::DrawHUD(const Frame* cam_frame) { abs_pos.x, abs_pos.y, abs_pos.z, abs_pos.Length()/AU, rel_to, pos.Length()/1000); Gui::Screen::RenderString(buf); - glPopMatrix(); } { @@ -310,7 +307,7 @@ void Player::DrawHUD(const Frame* cam_frame) { snprintf(buf, sizeof(buf), "Velocity: %.0f m/s", _vel); } glPushMatrix(); - glTranslatef(2, 66, 0); + glTranslatef(2, Gui::Screen::GetHeight()-Gui::Screen::GetFontHeight()-66, 0); Gui::Screen::RenderString(buf); glPopMatrix(); } @@ -323,7 +320,7 @@ void Player::DrawHUD(const Frame* cam_frame) { snprintf(buf, sizeof(buf), "Set speed %.0f m/s", m_setSpeed); } glPushMatrix(); - glTranslatef(200, 66, 0); + glTranslatef(200, Gui::Screen::GetHeight()-Gui::Screen::GetFontHeight()-66, 0); Gui::Screen::RenderString(buf); glPopMatrix(); } @@ -336,7 +333,7 @@ void Player::DrawHUD(const Frame* cam_frame) { char buf[128]; snprintf(buf, sizeof(buf), "Altitude: %.0f m", altitude); glPushMatrix(); - glTranslatef(400, 6, 0); + glTranslatef(400, Gui::Screen::GetHeight()-Gui::Screen::GetFontHeight()-66, 0); Gui::Screen::RenderString(buf); glPopMatrix(); } diff --git a/src/sector_view.cpp b/src/sector_view.cpp index f8ff820..2a547f8 100644 --- a/src/sector_view.cpp +++ b/src/sector_view.cpp @@ -16,7 +16,7 @@ SectorView::SectorView(void) : GenericSystemView() { m_zoom = 1; m_infoLabel = new Gui::Label(""); - Add(m_infoLabel, 2, 2); + Add(m_infoLabel, 2, Gui::Screen::GetHeight()-Gui::Screen::GetFontHeight()-66); Gui::ImageButton* ib = new Gui::ImageButton("icons/sectorview_f6_systeminfo.png"); ib->onClick.connect(sigc::mem_fun(this, &SectorView::OnClickSystemInfo)); diff --git a/src/ship_cpanel.cpp b/src/ship_cpanel.cpp index 85d1cfe..f9b9094 100644 --- a/src/ship_cpanel.cpp +++ b/src/ship_cpanel.cpp @@ -6,8 +6,8 @@ #include "info_view.h" #include "world_view.h" -ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { - Gui::Screen::AddBaseWidget(this, 0, 0); +ShipCpanel::ShipCpanel(void) : Gui::Fixed(Gui::Screen::GetWidth(), 64) { + Gui::Screen::AddBaseWidget(this, 0, Gui::Screen::GetHeight()-64); SetTransparency(true); Gui::Image* img = new Gui::Image("icons/cpanel.png"); @@ -18,33 +18,33 @@ ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { "icons/timeaccel0_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 0.0)); b->SetShortcut(SDLK_ESCAPE, KMOD_LSHIFT); - Add(b, 0, 26); + Add(b, 0, 20); b = new Gui::ImageRadioButton(g, "icons/timeaccel1.png", "icons/timeaccel1_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 1.0)); b->SetShortcut(SDLK_F1, KMOD_LSHIFT); b->SetSelected(true); - Add(b, 22, 26); + Add(b, 22, 20); b = new Gui::ImageRadioButton(g, "icons/timeaccel2.png", "icons/timeaccel2_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 10.0)); b->SetShortcut(SDLK_F2, KMOD_LSHIFT); - Add(b, 44, 26); + Add(b, 44, 20); b = new Gui::ImageRadioButton(g, "icons/timeaccel3.png", "icons/timeaccel3_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 100.0)); b->SetShortcut(SDLK_F3, KMOD_LSHIFT); - Add(b, 66, 26); + Add(b, 66, 20); b = new Gui::ImageRadioButton(g, "icons/timeaccel4.png", "icons/timeaccel4_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 1000.0)); b->SetShortcut(SDLK_F4, KMOD_LSHIFT); - Add(b, 88, 26); + Add(b, 88, 20); b = new Gui::ImageRadioButton(g, "icons/timeaccel5.png", "icons/timeaccel5_on.png"); b->onSelect.connect(sigc::bind(sigc::mem_fun(this, &ShipCpanel::OnClickTimeaccel), 10000.0)); b->SetShortcut(SDLK_F5, KMOD_LSHIFT); - Add(b, 110, 26); + Add(b, 110, 20); g = new Gui::RadioGroup(); Gui::MultiStateImageButton* cam_button = new Gui::MultiStateImageButton(); @@ -55,7 +55,7 @@ ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { cam_button->AddState(WorldView::CAM_EXTERNAL, "icons/cam_external.png", "External view"); cam_button->SetShortcut(SDLK_F1, KMOD_NONE); cam_button->onClick.connect(sigc::mem_fun(this, &ShipCpanel::OnChangeCamView)); - Add(cam_button, 2, 2); + Add(cam_button, 2, 40); Gui::MultiStateImageButton* map_button = new Gui::MultiStateImageButton(); g->Add(map_button); @@ -64,7 +64,7 @@ ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { map_button->AddState(L3D::MAP_SECTOR, "icons/cpan_f2_map.png", "Galaxy sector map"); map_button->AddState(L3D::MAP_SYSTEM, "icons/cpan_f2_normal.png", "Star system view"); map_button->onClick.connect(sigc::mem_fun(this, &ShipCpanel::OnChangeMapView)); - Add(map_button, 34, 2); + Add(map_button, 34, 40); Gui::MultiStateImageButton* info_button = new Gui::MultiStateImageButton(); g->Add(info_button); @@ -72,7 +72,7 @@ ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { info_button->SetShortcut(SDLK_F3, KMOD_NONE); info_button->AddState(0, "icons/cpan_f3_shipinfo.png", "Ship information."); info_button->onClick.connect(sigc::mem_fun(this, &ShipCpanel::OnChangeInfoView)); - Add(info_button, 66, 2); + Add(info_button, 66, 40); Gui::MultiStateImageButton* comms_button = new Gui::MultiStateImageButton(); g->Add(comms_button); @@ -80,11 +80,11 @@ ShipCpanel::ShipCpanel(void) : Gui::Fixed(640, 64) { comms_button->SetShortcut(SDLK_F4, KMOD_NONE); comms_button->AddState(0, "icons/comms_f4.png", "Comms."); comms_button->onClick.connect(sigc::mem_fun(this, &ShipCpanel::OnClickComms)); - Add(comms_button, 98, 2); + Add(comms_button, 98, 40); m_clock = new Gui::Label(""); m_clock->SetColor(1, 0.7, 0); - Add(m_clock, 2, 48); + Add(m_clock, 2, 3); tempMsg = new Gui::Label(""); Add(tempMsg, 170, 44); diff --git a/src/space_station_view.cpp b/src/space_station_view.cpp index 3a95ab8..17e44b9 100644 --- a/src/space_station_view.cpp +++ b/src/space_station_view.cpp @@ -41,21 +41,19 @@ StationFrontView::StationFrontView(SpaceStationView* parent): StationSubView(par "can offer you this promotional message from one of the station's sponsors:\n\n" " ADOPT A CAT: THEY CHEW IMPORTANT CABLES!"); - float size[2]; - GetSize(size); - Add(l, 40, size[1]-100); + Add(l, 40, 100); Gui::SolidButton* b = new Gui::SolidButton(); b->onClick.connect(sigc::mem_fun(this, &StationFrontView::OnClickRequestLaunch)); - Add(b, 40, size[1]-300); + Add(b, 40, 300); l = new Gui::Label("Request Launch"); - Add(l, 65, size[1]-300); + Add(l, 65, 300); b = new Gui::SolidButton(); b->onClick.connect(sigc::mem_fun(this, &StationFrontView::OnClickGotoShipYard)); - Add(b, 40, size[1]-360); + Add(b, 40, 360); l = new Gui::Label("Shipyard"); - Add(l, 65, size[1]-360); + Add(l, 65, 360); } /**********************************************************/ diff --git a/src/system_info_view.cpp b/src/system_info_view.cpp index 3bad5c1..be85448 100644 --- a/src/system_info_view.cpp +++ b/src/system_info_view.cpp @@ -76,12 +76,11 @@ void SystemInfoView::PutBodies(StarSystem::SBody* body, int dir, float pos[2], if(body->type != StarSystem::TYPE_GRAVPOINT) { Gui::ImageButton* ib = new Gui::ImageButton(body->GetIcon()); ib->GetSize(size); - size[1] = -size[1]; if(prevSize == -1) prevSize = size[!dir]; ib->onClick.connect(sigc::bind(sigc::mem_fun(this, &SystemInfoView::OnBodySelected), body)); myPos[0] += (dir ? prevSize*0.5 - size[0]*0.5 : 0); myPos[1] += (!dir ? prevSize*0.5 - size[1]*0.5 : 0); - Add(ib, myPos[0], myPos[1]+size[1]); + Add(ib, myPos[0], myPos[1]); majorBodies++; pos[dir] += size[dir]; dir = !dir; @@ -100,21 +99,16 @@ void SystemInfoView::PutBodies(StarSystem::SBody* body, int dir, float pos[2], void SystemInfoView::SystemChanged(StarSystem* s) { DeleteAllChildren(); - float csize[2]; int majorBodies = 0; - GetSize(csize); - float pos[2]; - pos[0] = 0; - pos[1] = csize[1]; - + float pos[2] = { 0, 0 }; PutBodies(s->rootBody, 1, pos, majorBodies, -1); char buf[512]; snprintf(buf, sizeof(buf), "Stable system with %d major bodies", majorBodies); m_infoText = new Gui::Label(buf); m_infoText->SetColor(1, 1, 0); - Add(m_infoText, 50, 200); + Add(m_infoText, 50, 400); ShowAll(); } diff --git a/src/system_view.cpp b/src/system_view.cpp index d172a90..8106221 100644 --- a/src/system_view.cpp +++ b/src/system_view.cpp @@ -9,7 +9,7 @@ SystemView::SystemView(void): View() { m_timePoint = new Gui::Label(""); m_timePoint->SetColor(.7, .7, .7); - Add(m_timePoint, 24, 5); + Add(m_timePoint, 2, Gui::Screen::GetHeight()-Gui::Screen::GetFontHeight()-66);; m_zoomInButton = new Gui::ImageButton("icons/zoom_in_f7.png"); m_zoomInButton->SetShortcut(SDLK_F6, KMOD_NONE); diff --git a/src/view.h b/src/view.h index ea75473..514b148 100644 --- a/src/view.h +++ b/src/view.h @@ -12,15 +12,15 @@ class View : public Gui::Fixed { public: View(void) : Gui::Fixed(Gui::Screen::GetWidth(), Gui::Screen::GetHeight()-64) { - Gui::Screen::AddBaseWidget(this, 0, 64); + Gui::Screen::AddBaseWidget(this, 0, 0); m_rightButtonBar = new Gui::Fixed(128, 26); m_rightButtonBar->SetBgColor(.65, .65, .65); - Gui::Screen::AddBaseWidget(m_rightButtonBar, Gui::Screen::GetWidth()-128, 0); + Gui::Screen::AddBaseWidget(m_rightButtonBar, Gui::Screen::GetWidth()-128, Gui::Screen::GetHeight()-26); m_rightRegion2 = new Gui::Fixed(122, 17); m_rightRegion2->SetTransparency(true); - Gui::Screen::AddBaseWidget(m_rightRegion2, Gui::Screen::GetWidth()-123, 26); + Gui::Screen::AddBaseWidget(m_rightRegion2, Gui::Screen::GetWidth()-123, Gui::Screen::GetHeight()-44); } virtual ~View(void) { delete m_rightButtonBar; delete m_rightRegion2; } virtual void ShowAll(void) {