[Change] Changed GUI coords to be sensible top-left (0,0).
[Change] Some GUI cleanup.
This commit is contained in:
parent
13c6600e20
commit
44bc01682e
@ -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) {
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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; }
|
||||
|
@ -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) {
|
||||
|
12
src/main.cpp
12
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();
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/**********************************************************/
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user