use grids instead of nested boxes for input config dialog. (still lags, needs optimization)
adjust things to make those dialogs sexier.
This commit is contained in:
parent
9d3f13b689
commit
5d5311c53c
|
@ -303,27 +303,24 @@ void Open()
|
|||
{
|
||||
uiBox* in_ctrl = uiNewHorizontalBox();
|
||||
uiBoxAppend(top, uiControl(in_ctrl), 0);
|
||||
|
||||
uiBoxSetPadded(in_ctrl, 1);
|
||||
|
||||
uiGroup* g_key = uiNewGroup("Keyboard");
|
||||
uiBoxAppend(in_ctrl, uiControl(g_key), 1);
|
||||
uiBox* b_key = uiNewVerticalBox();
|
||||
uiGrid* b_key = uiNewGrid();
|
||||
uiGroupSetChild(g_key, uiControl(b_key));
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
int j = keyorder[i];
|
||||
|
||||
uiBox* box = uiNewHorizontalBox();
|
||||
uiBoxAppend(b_key, uiControl(box), 0);
|
||||
|
||||
uiLabel* label = uiNewLabel(keylabels[j]);
|
||||
uiBoxAppend(box, uiControl(label), 1);
|
||||
uiGridAppend(b_key, uiControl(label), 0, i, 1, 1, 1, uiAlignStart, 1, uiAlignCenter);
|
||||
|
||||
char* keyname = uiKeyName(Config::KeyMapping[j]);
|
||||
|
||||
uiButton* btn = uiNewButton(keyname);
|
||||
uiBoxAppend(box, uiControl(btn), 1);
|
||||
uiGridAppend(b_key, uiControl(btn), 1, i, 1, 1, 1, uiAlignFill, 1, uiAlignCenter);
|
||||
uiButtonOnClicked(btn, OnKeyStartConfig, &keyorder[i]);
|
||||
|
||||
uiFreeText(keyname);
|
||||
|
@ -331,24 +328,21 @@ void Open()
|
|||
|
||||
uiGroup* g_joy = uiNewGroup("Joystick");
|
||||
uiBoxAppend(in_ctrl, uiControl(g_joy), 1);
|
||||
uiBox* b_joy = uiNewVerticalBox();
|
||||
uiGrid* b_joy = uiNewGrid();
|
||||
uiGroupSetChild(g_joy, uiControl(b_joy));
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
int j = keyorder[i];
|
||||
|
||||
uiBox* box = uiNewHorizontalBox();
|
||||
uiBoxAppend(b_joy, uiControl(box), 0);
|
||||
|
||||
uiLabel* label = uiNewLabel(keylabels[j]);
|
||||
uiBoxAppend(box, uiControl(label), 1);
|
||||
uiGridAppend(b_joy, uiControl(label), 0, i, 1, 1, 1, uiAlignStart, 1, uiAlignCenter);
|
||||
|
||||
char keyname[16];
|
||||
JoyMappingName(Config::JoyMapping[j], keyname);
|
||||
|
||||
uiButton* btn = uiNewButton(keyname);
|
||||
uiBoxAppend(box, uiControl(btn), 1);
|
||||
uiGridAppend(b_joy, uiControl(btn), 1, i, 1, 1, 1, uiAlignFill, 1, uiAlignCenter);
|
||||
uiButtonOnClicked(btn, OnJoyStartConfig, &keyorder[i]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ uiWindowsControlAllDefaultsExceptDestroy(uiButton)
|
|||
|
||||
// from http://msdn.microsoft.com/en-us/library/windows/desktop/dn742486.aspx#sizingandspacing
|
||||
#define buttonHeight 14
|
||||
#define buttonMinWidth 64
|
||||
|
||||
static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||
{
|
||||
|
@ -45,6 +46,7 @@ static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
|||
size.cy = 0;
|
||||
if (SendMessageW(b->hwnd, BCM_GETIDEALSIZE, 0, (LPARAM) (&size)) != FALSE) {
|
||||
*width = size.cx;
|
||||
if (*width < buttonMinWidth) *width = buttonMinWidth;
|
||||
*height = size.cy;
|
||||
return;
|
||||
}
|
||||
|
@ -53,6 +55,7 @@ static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
|||
// Microsoft says to use a fixed width for all buttons; this isn't good enough
|
||||
// use the text width instead, with some edge padding
|
||||
*width = uiWindowsWindowTextWidth(b->hwnd) + (2 * GetSystemMetrics(SM_CXEDGE));
|
||||
if (*width < buttonMinWidth) *width = buttonMinWidth;
|
||||
y = buttonHeight;
|
||||
uiWindowsGetSizing(b->hwnd, &sizing);
|
||||
uiWindowsSizingDlgUnitsToPixels(&sizing, NULL, &y);
|
||||
|
|
Loading…
Reference in New Issue