#include "button.qh"
#include "nexposee.qh"
- void Dialog_Close(entity button, entity me)
- {
- me.close(me);
+void Dialog_Close(entity button, entity me)
+{
+ me.close(me);
+}
+
+void Dialog_fill(entity me)
+{}
+
+void Dialog_addItemSimple(entity me, float row, float col, float rowspan, float colspan, entity e, vector v)
+{
+ vector o, s;
+ o = me.itemOrigin + eX * (col * me.itemSpacing.x) + eY * (row * me.itemSpacing.y);
+ s = me.itemSize + eX * ((colspan - 1) * me.itemSpacing.x) + eY * ((rowspan - 1) * me.itemSpacing.y);
+ o.x -= 0.5 * (me.itemSpacing.x - me.itemSize.x) * v.x;
+ s.x += (me.itemSpacing.x - me.itemSize.x) * v.x;
+ o.y -= 0.5 * (me.itemSpacing.y - me.itemSize.y) * v.y;
+ s.y += (me.itemSpacing.y - me.itemSize.y) * v.y;
+ me.addItem(me, e, o, s, 1);
+}
+
+void Dialog_gotoRC(entity me, float row, float col)
+{
+ me.currentRow = row;
+ me.currentColumn = col;
+}
+
+void Dialog_TR(entity me)
+{
+ me.currentRow += 1;
+ me.currentColumn = me.firstColumn;
+}
+
+void Dialog_TD(entity me, float rowspan, float colspan, entity e)
+{
+ me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, '0 0 0');
+ me.currentColumn += colspan;
+}
+
+void Dialog_TDNoMargin(entity me, float rowspan, float colspan, entity e, vector v)
+{
+ me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, v);
+ me.currentColumn += colspan;
+}
+
+void Dialog_setFirstColumn(entity me, float col)
+{
+ me.firstColumn = col;
+}
+
+void Dialog_TDempty(entity me, float colspan)
+{
+ me.currentColumn += colspan;
+}
+
+void Dialog_configureDialog(entity me)
+{
+ float absWidth, absHeight;
+
+ if (me.isTabRoot) {
+ me.frame = NEW(BorderImage);
+ me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.borderLines * me.titleHeight);
+ me.frame.zoomedOutTitleBarPosition = me.zoomedOutTitleBarPosition;
+ me.frame.zoomedOutTitleBar = me.zoomedOutTitleBar;
+ me.frame.alpha = me.alpha;
+ me.addItem(me, me.frame, '0 0 0', '1 1 0', 1);
}
- void Dialog_fill(entity me)
- {}
-
- void Dialog_addItemSimple(entity me, float row, float col, float rowspan, float colspan, entity e, vector v)
- {
- vector o, s;
- o = me.itemOrigin + eX * (col * me.itemSpacing.x) + eY * (row * me.itemSpacing.y);
- s = me.itemSize + eX * ((colspan - 1) * me.itemSpacing.x) + eY * ((rowspan - 1) * me.itemSpacing.y);
- o.x -= 0.5 * (me.itemSpacing.x - me.itemSize.x) * v.x;
- s.x += (me.itemSpacing.x - me.itemSize.x) * v.x;
- o.y -= 0.5 * (me.itemSpacing.y - me.itemSize.y) * v.y;
- s.y += (me.itemSpacing.y - me.itemSize.y) * v.y;
- me.addItem(me, e, o, s, 1);
+ if (!me.titleFontSize) {
+ me.titleHeight = 0; // no title bar
}
-
- void Dialog_gotoRC(entity me, float row, float col)
- {
- me.currentRow = row;
- me.currentColumn = col;
- }
-
- void Dialog_TR(entity me)
- {
- me.currentRow += 1;
- me.currentColumn = me.firstColumn;
- }
-
- void Dialog_TD(entity me, float rowspan, float colspan, entity e)
- {
- me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, '0 0 0');
- me.currentColumn += colspan;
+ absWidth = me.intendedWidth * conwidth;
+ absHeight = me.borderLines * me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
+ me.itemOrigin = eX * (me.marginLeft / absWidth)
+ + eY * ((me.borderLines * me.titleHeight + me.marginTop) / absHeight);
+ me.itemSize = eX * ((1 - (me.marginLeft + me.marginRight + me.columnSpacing * (me.columns - 1)) / absWidth) / me.columns)
+ + eY * (me.rowHeight / absHeight);
+ me.itemSpacing = me.itemSize
+ + eX * (me.columnSpacing / absWidth)
+ + eY * (me.rowSpacing / absHeight);
+ me.intendedHeight = absHeight / conheight;
+ me.currentRow = -1;
+ me.currentColumn = -1;
+
+ me.fill(me);
+
+ if (me.isTabRoot && me.closable && me.borderLines > 0) {
+ entity closebutton;
+ closebutton = me.closeButton = me.frame.closeButton = NEW(Button);
+ closebutton.configureButton(closebutton, "", 0, me.closeButtonImage);
+ closebutton.onClick = Dialog_Close;
+ closebutton.onClickEntity = me;
+ closebutton.srcMulti = 0;
+ me.addItem(me, closebutton, '0 0 0', '1 1 0', 1); // put it as LAST
}
-
- void Dialog_TDNoMargin(entity me, float rowspan, float colspan, entity e, vector v)
- {
- me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, v);
- me.currentColumn += colspan;
- }
-
- void Dialog_setFirstColumn(entity me, float col)
- {
- me.firstColumn = col;
- }
-
- void Dialog_TDempty(entity me, float colspan)
- {
- me.currentColumn += colspan;
- }
-
- void Dialog_configureDialog(entity me)
- {
- float absWidth, absHeight;
-
- if (me.isTabRoot)
- {
- me.frame = NEW(BorderImage);
- me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.borderLines * me.titleHeight);
- me.frame.zoomedOutTitleBarPosition = me.zoomedOutTitleBarPosition;
- me.frame.zoomedOutTitleBar = me.zoomedOutTitleBar;
- me.frame.alpha = me.alpha;
- me.addItem(me, me.frame, '0 0 0', '1 1 0', 1);
- }
-
- if (!me.titleFontSize) me.titleHeight = 0; // no title bar
-
- absWidth = me.intendedWidth * conwidth;
- absHeight = me.borderLines * me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
- me.itemOrigin = eX * (me.marginLeft / absWidth)
- + eY * ((me.borderLines * me.titleHeight + me.marginTop) / absHeight);
- me.itemSize = eX * ((1 - (me.marginLeft + me.marginRight + me.columnSpacing * (me.columns - 1)) / absWidth) / me.columns)
- + eY * (me.rowHeight / absHeight);
- me.itemSpacing = me.itemSize
- + eX * (me.columnSpacing / absWidth)
- + eY * (me.rowSpacing / absHeight);
- me.intendedHeight = absHeight / conheight;
- me.currentRow = -1;
- me.currentColumn = -1;
-
- me.fill(me);
-
- if (me.isTabRoot && me.closable && me.borderLines > 0)
- {
- entity closebutton;
- closebutton = me.closeButton = me.frame.closeButton = NEW(Button);
- closebutton.configureButton(closebutton, "", 0, me.closeButtonImage);
- closebutton.onClick = Dialog_Close;
- closebutton.onClickEntity = me;
- closebutton.srcMulti = 0;
- me.addItem(me, closebutton, '0 0 0', '1 1 0', 1); // put it as LAST
+}
+
+void Dialog_close(entity me)
+{
+ if (me.parent.instanceOfNexposee) {
+ ExposeeCloseButton_Click(me, me.parent);
+ if (me.hideMenuOnClose) {
+ me.hideMenuOnClose = false;
+ m_hide();
}
+ } else if (me.parent.instanceOfModalController) {
+ DialogCloseButton_Click(me, me);
}
-
- void Dialog_close(entity me)
- {
- if (me.parent.instanceOfNexposee)
- {
- ExposeeCloseButton_Click(me, me.parent);
- if(me.hideMenuOnClose)
- {
- me.hideMenuOnClose = false;
- m_hide();
- }
+}
+
+float Dialog_keyDown(entity me, float key, float ascii, float shift)
+{
+ if (me.closable) {
+ if (key == K_ESCAPE) {
+ m_play_click_sound(MENU_SOUND_CLOSE);
+ me.close(me);
+ return 1;
}
- else if (me.parent.instanceOfModalController)
- DialogCloseButton_Click(me, me);
}
-
- float Dialog_keyDown(entity me, float key, float ascii, float shift)
- {
- if (me.closable)
- {
- if (key == K_ESCAPE)
- {
- m_play_click_sound(MENU_SOUND_CLOSE);
- me.close(me);
- return 1;
- }
- }
- float r = SUPER(Dialog).keyDown(me, key, ascii, shift);
- if (!me.closable && key == K_ESCAPE)
- return 1;
- return r;
+ float r = SUPER(Dialog).keyDown(me, key, ascii, shift);
+ if (!me.closable && key == K_ESCAPE) {
+ return 1;
}
+ return r;
+}