diff options
-rw-r--r-- | Plugins/skins/MirandaSkinnedDialog.cpp | 6 | ||||
-rw-r--r-- | Plugins/skins/MirandaSkinnedDialog.h | 1 | ||||
-rw-r--r-- | Plugins/skins/SkinLib/SkinOptions.cpp | 2 | ||||
-rw-r--r-- | Plugins/skins/SkinLib/SkinOptions.h | 2 | ||||
-rw-r--r-- | Plugins/skins/commons.h | 2 | ||||
-rw-r--r-- | Plugins/skins/options.cpp | 402 | ||||
-rw-r--r-- | Plugins/skins/resource.h | 18 | ||||
-rw-r--r-- | Plugins/skins/resource.rc | 49 |
8 files changed, 397 insertions, 85 deletions
diff --git a/Plugins/skins/MirandaSkinnedDialog.cpp b/Plugins/skins/MirandaSkinnedDialog.cpp index 4e6e83e..03fa01c 100644 --- a/Plugins/skins/MirandaSkinnedDialog.cpp +++ b/Plugins/skins/MirandaSkinnedDialog.cpp @@ -87,6 +87,12 @@ void MirandaSkinnedDialog::loadFromDB(SkinOption *opt) }
}
+void MirandaSkinnedDialog::storeToDB(const SkinOptions *opts)
+{
+ for (unsigned int i = 0; i < opts->getNumOptions(); i++)
+ storeToDB(opts->getOption(i));
+}
+
void MirandaSkinnedDialog::storeToDB(const SkinOption *opt)
{
switch(opt->getType())
diff --git a/Plugins/skins/MirandaSkinnedDialog.h b/Plugins/skins/MirandaSkinnedDialog.h index b2c5c30..b8efdd3 100644 --- a/Plugins/skins/MirandaSkinnedDialog.h +++ b/Plugins/skins/MirandaSkinnedDialog.h @@ -17,6 +17,7 @@ public: virtual bool finishedConfiguring();
+ void storeToDB(const SkinOptions *opts);
private:
std::string module;
diff --git a/Plugins/skins/SkinLib/SkinOptions.cpp b/Plugins/skins/SkinLib/SkinOptions.cpp index e0e8174..51fb96c 100644 --- a/Plugins/skins/SkinLib/SkinOptions.cpp +++ b/Plugins/skins/SkinLib/SkinOptions.cpp @@ -176,7 +176,7 @@ SkinOption * SkinOptions::getOption(unsigned int pos) const return options[pos];
}
-unsigned int SkinOptions::getNumOptions()
+unsigned int SkinOptions::getNumOptions() const
{
return options.size();
}
diff --git a/Plugins/skins/SkinLib/SkinOptions.h b/Plugins/skins/SkinLib/SkinOptions.h index f6a27da..41d238a 100644 --- a/Plugins/skins/SkinLib/SkinOptions.h +++ b/Plugins/skins/SkinLib/SkinOptions.h @@ -75,7 +75,7 @@ public: bool addOption(SkinOption *opt);
SkinOption * getOption(const char *name) const;
SkinOption * getOption(unsigned int pos) const;
- unsigned int getNumOptions();
+ unsigned int getNumOptions() const;
void clearOptions();
void setOnOptionAddRemoveCallback(SkinOptionCallback cb, void *param = NULL);
diff --git a/Plugins/skins/commons.h b/Plugins/skins/commons.h index 10125f2..05bafe7 100644 --- a/Plugins/skins/commons.h +++ b/Plugins/skins/commons.h @@ -22,11 +22,13 @@ Boston, MA 02111-1307, USA. # define __COMMONS_H__
+#define OEMRESOURCE
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <time.h>
+#include <commctrl.h>
// Disable "...truncated to '255' characters in the debug information" warnings
diff --git a/Plugins/skins/options.cpp b/Plugins/skins/options.cpp index 62f17db..eab82c4 100644 --- a/Plugins/skins/options.cpp +++ b/Plugins/skins/options.cpp @@ -31,16 +31,7 @@ HANDLE hOptHook = NULL; Options opts;
-static BOOL CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-
-
-static OptPageControl optionsControls[1] = {
- 0
-};
-
-static UINT optionsExpertControls[1] = {
- 0
-};
+static BOOL CALLBACK SkinOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
// Functions //////////////////////////////////////////////////////////////////////////////////////
@@ -48,21 +39,25 @@ static UINT optionsExpertControls[1] = { int InitOptionsCallback(WPARAM wParam,LPARAM lParam)
{
-/* OPTIONSDIALOGPAGE odp;
-
- ZeroMemory(&odp,sizeof(odp));
- odp.cbSize=sizeof(odp);
- odp.position=0;
- odp.hInstance=hInst;
- odp.ptszGroup = TranslateT("Message Sessions");
- odp.ptszTitle = TranslateT("Emoticons");
- odp.pfnDlgProc = OptionsDlgProc;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
- odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
- odp.expertOnlyControls = optionsExpertControls;
- odp.nExpertOnlyControls = MAX_REGS(optionsExpertControls);
- CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
-*/
+ OPTIONSDIALOGPAGE odp;
+ ZeroMemory(&odp, sizeof(odp));
+ odp.cbSize = sizeof(odp);
+ odp.position = 0;
+ odp.hInstance = hInst;
+ odp.pszGroup = "Skins";
+ odp.pszTab = "Skin";
+ odp.pfnDlgProc = SkinOptDlgProc;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_SKIN_OPT);
+ odp.flags = ODPF_BOLDGROUPS;
+
+ for(unsigned int i = 0; i < dlgs.size(); i++)
+ {
+ MirandaSkinnedDialog * dlg = dlgs[i];
+ odp.pszTitle = (char *) dlg->getName(); // Yeah, yeah, I know...
+ odp.dwInitParam = (LPARAM) dlg;
+ CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp);
+ }
+
return 0;
}
@@ -83,13 +78,364 @@ void DeInitOptions() void LoadOptions()
{
- LoadOpts(optionsControls, MAX_REGS(optionsControls), MODULE_NAME);
+}
+
+static void GetTextMetric(HFONT hFont, TEXTMETRIC *tm)
+{
+ HDC hdc = GetDC(NULL);
+ HFONT hOldFont = (HFONT) SelectObject(hdc, hFont);
+ GetTextMetrics(hdc, tm);
+ SelectObject(hdc, hOldFont);
+ ReleaseDC(NULL, hdc);
}
-static BOOL CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static BOOL ScreenToClient(HWND hWnd, LPRECT lpRect)
{
- return SaveOptsDlgProc(optionsControls, MAX_REGS(optionsControls), MODULE_NAME, hwndDlg, msg, wParam, lParam);
+ BOOL ret;
+
+ POINT pt;
+
+ pt.x = lpRect->left;
+ pt.y = lpRect->top;
+
+ ret = ScreenToClient(hWnd, &pt);
+
+ if (!ret) return ret;
+
+ lpRect->left = pt.x;
+ lpRect->top = pt.y;
+
+
+ pt.x = lpRect->right;
+ pt.y = lpRect->bottom;
+
+ ret = ScreenToClient(hWnd, &pt);
+
+ lpRect->right = pt.x;
+ lpRect->bottom = pt.y;
+
+ return ret;
}
+#define V_SPACE 5
+#define H_INITIAL_SPACE 10
+#define MAX_TEXT_SIZE 128
+
+static BOOL CALLBACK SkinOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) lParam;
+ _ASSERT(dlg != NULL);
+ SetWindowLong(hwndDlg, GWL_USERDATA, (LONG) NULL);
+
+ HWND skinOptsLabel = GetDlgItem(hwndDlg, IDC_SKIN_OPTS_L);
+
+ SkinOptions *opts = dlg->getOpts();
+ if (opts == NULL)
+ {
+ ShowWindow(skinOptsLabel, SW_HIDE);
+ ShowScrollBar(hwndDlg, SB_VERT, FALSE);
+ }
+ else
+ {
+ HWND skinLabel = GetDlgItem(hwndDlg, IDC_SKIN_L);
+ HWND skinCombo = GetDlgItem(hwndDlg, IDC_SKIN);
+
+ RECT labelRc = {0};
+ GetWindowRect(skinLabel, &labelRc);
+ ScreenToClient(hwndDlg, &labelRc);
+ labelRc.left += H_INITIAL_SPACE;
+
+ RECT valueRc = {0};
+ GetWindowRect(skinCombo, &valueRc);
+ ScreenToClient(hwndDlg, &valueRc);
+
+ RECT lineRc = {0};
+ GetWindowRect(skinOptsLabel, &lineRc);
+ ScreenToClient(hwndDlg, &lineRc);
+
+ HFONT hFont = (HFONT) SendMessage(hwndDlg, WM_GETFONT, 0, 0);
+ TEXTMETRIC font;
+ GetTextMetric(hFont, &font);
+
+ int lineHeight = max(font.tmHeight, 16) + 4;
+ int y = lineRc.bottom + V_SPACE;
+ int id = IDC_SKIN_OPTS_L + 1;
+
+ for (unsigned int i = 0; i < opts->getNumOptions(); i++)
+ {
+ SkinOption *opt = opts->getOption(i);
+
+ switch(opt->getType())
+ {
+ case CHECKBOX:
+ {
+ HWND chk = CreateWindow(_T("BUTTON"), opt->getDescription(),
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_CHECKBOX | BS_AUTOCHECKBOX,
+ labelRc.left, y,
+ lineRc.right - labelRc.left,
+ lineHeight, hwndDlg, (HMENU) id, hInst, NULL);
+ SendMessage(chk, BM_SETCHECK, opt->getValueCheckbox() ? BST_CHECKED : BST_UNCHECKED, 0);
+ SendMessage(chk, WM_SETFONT, (WPARAM) hFont, FALSE);
+
+ break;
+ }
+ case NUMBER:
+ {
+ std::tstring tmp = opt->getDescription();
+ tmp += _T(":");
+ HWND lbl = CreateWindow(_T("STATIC"), tmp.c_str(),
+ WS_CHILD | WS_VISIBLE,
+ labelRc.left, y + (lineHeight - font.tmHeight) / 2,
+ labelRc.right - labelRc.left, font.tmHeight,
+ hwndDlg, NULL, hInst, NULL);
+ SendMessage(lbl, WM_SETFONT, (WPARAM) hFont, FALSE);
+
+ HWND edit = CreateWindowEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL | ES_NUMBER,
+ valueRc.left, y,
+ (valueRc.right - valueRc.left) / 2, lineHeight,
+ hwndDlg, (HMENU) id, hInst, NULL);
+ SendMessage(edit, WM_SETFONT, (WPARAM) hFont, FALSE);
+ SendMessage(edit, EM_LIMITTEXT, 10, 0);
+
+ HWND spin = CreateWindow(UPDOWN_CLASS, NULL,
+ WS_CHILD | WS_VISIBLE | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,
+ valueRc.left, y,
+ 1, 1,
+ hwndDlg, (HMENU) (id + 1), hInst, NULL);
+ SendMessage(spin, WM_SETFONT, (WPARAM) hFont, FALSE);
+ SendMessage(spin, UDM_SETBUDDY, (WPARAM) edit, 0);
+ SendMessage(spin, UDM_SETRANGE, 0, MAKELONG(min(0x7fff, opt->getMax()), max(-0x7fff, min(0x7fff, opt->getMin()))));
+ SendMessage(spin, UDM_SETPOS, 0, MAKELONG(opt->getValueNumber(), 0));
+
+ break;
+ }
+ case TEXT:
+ {
+ std::tstring tmp = opt->getDescription();
+ tmp += _T(":");
+ HWND lbl = CreateWindow(_T("STATIC"), tmp.c_str(),
+ WS_CHILD | WS_VISIBLE,
+ labelRc.left, y + (lineHeight - font.tmHeight) / 2,
+ labelRc.right - labelRc.left, font.tmHeight,
+ hwndDlg, NULL, hInst, NULL);
+ SendMessage(lbl, WM_SETFONT, (WPARAM) hFont, FALSE);
+
+ HWND edit = CreateWindowEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL,
+ valueRc.left, y,
+ lineRc.right - valueRc.left, lineHeight,
+ hwndDlg, (HMENU) id, hInst, NULL);
+ SendMessage(edit, WM_SETFONT, (WPARAM) hFont, FALSE);
+ SendMessage(edit, EM_LIMITTEXT, MAX_TEXT_SIZE, 0);
+
+ SetWindowText(edit, opt->getValueText());
+
+ break;
+ }
+ }
+
+ id += 2;
+ y += lineHeight + V_SPACE;
+ }
+
+ RECT rc = {0};
+ GetClientRect(hwndDlg, &rc);
+ int avaiable = rc.bottom - rc.top;
+ int total = y - V_SPACE;
+ int current = 0;
+
+ SCROLLINFO si;
+ si.cbSize = sizeof(si);
+ si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;
+ si.nMin = 0;
+ si.nMax = total;
+ si.nPage = avaiable;
+ si.nPos = current;
+ SetScrollInfo(hwndDlg, SB_VERT, &si, TRUE);
+ }
+
+ TranslateDialogDefault(hwndDlg);
+
+ SetWindowLong(hwndDlg, GWL_USERDATA, (LONG) dlg);
+
+ break;
+ }
+
+ case WM_VSCROLL:
+ {
+ if (lParam != 0)
+ break;
+
+ SCROLLINFO si = {0};
+ si.cbSize = sizeof(si);
+ si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;
+ GetScrollInfo(hwndDlg, SB_VERT, &si);
+
+ int total = si.nMax;
+ int avaiable = si.nPage;
+ int current = si.nPos;
+
+ HFONT hFont = (HFONT) SendMessage(hwndDlg, WM_GETFONT, 0, 0);
+ TEXTMETRIC font;
+ GetTextMetric(hFont, &font);
+ int lineHeight = max(font.tmHeight, 16) + 4;
+
+ int yDelta; // yDelta = new_pos - current_pos
+ int yNewPos; // new position
+
+ switch (LOWORD(wParam))
+ {
+ case SB_PAGEUP:
+ yNewPos = current - avaiable / 2;
+ break;
+ case SB_PAGEDOWN:
+ yNewPos = current + avaiable / 2;
+ break;
+ case SB_LINEUP:
+ yNewPos = current - lineHeight;
+ break;
+ case SB_LINEDOWN:
+ yNewPos = current + lineHeight;
+ break;
+ case SB_THUMBPOSITION:
+ yNewPos = HIWORD(wParam);
+ break;
+ case SB_THUMBTRACK:
+ yNewPos = HIWORD(wParam);
+ break;
+ default:
+ yNewPos = current;
+ }
+
+ yNewPos = min(total - avaiable, max(0, yNewPos));
+
+ if (yNewPos == current)
+ break;
+
+ yDelta = yNewPos - current;
+ current = yNewPos;
+
+ // Scroll the window. (The system repaints most of the
+ // client area when ScrollWindowEx is called; however, it is
+ // necessary to call UpdateWindow in order to repaint the
+ // rectangle of pixels that were invalidated.)
+
+ ScrollWindowEx(hwndDlg, 0, -yDelta, (CONST RECT *) NULL,
+ (CONST RECT *) NULL, (HRGN) NULL, (LPRECT) NULL,
+ /* SW_ERASE | SW_INVALIDATE | */ SW_SCROLLCHILDREN);
+ UpdateWindow(hwndDlg);
+ InvalidateRect(hwndDlg, NULL, TRUE);
+
+ // Reset the scroll bar.
+
+ si.fMask = SIF_POS;
+ si.nPos = current;
+ SetScrollInfo(hwndDlg, SB_VERT, &si, TRUE);
+
+ break;
+ }
+
+ case WM_COMMAND:
+ {
+ MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) GetWindowLong(hwndDlg, GWL_USERDATA);
+ if (dlg == NULL)
+ break;
+
+ SkinOptions *opts = dlg->getOpts();
+ if (opts == NULL)
+ break;
+
+ bool changed = false;
+ int id = IDC_SKIN_OPTS_L + 1;
+ for (unsigned int i = 0; i < opts->getNumOptions() && !changed; i++)
+ {
+ SkinOption *opt = opts->getOption(i);
+
+ if (LOWORD(wParam) == id)
+ {
+ switch(opt->getType())
+ {
+ case CHECKBOX:
+ {
+ changed = true;
+ break;
+ }
+ case NUMBER:
+ case TEXT:
+ {
+ // Don't make apply enabled during buddy set
+ if (HIWORD(wParam) == EN_CHANGE && (HWND)lParam == GetFocus())
+ changed = true;
+ break;
+ }
+ }
+ }
+
+ id += 2;
+ }
+
+ if (changed)
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+
+ break;
+ }
+ case WM_NOTIFY:
+ {
+ LPNMHDR lpnmhdr = (LPNMHDR) lParam;
+
+ if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY)
+ {
+ MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) GetWindowLong(hwndDlg, GWL_USERDATA);
+ if (dlg == NULL)
+ break;
+
+ SkinOptions *opts = dlg->getOpts();
+ if (opts == NULL)
+ break;
+
+ int id = IDC_SKIN_OPTS_L + 1;
+ for (unsigned int i = 0; i < opts->getNumOptions(); i++)
+ {
+ SkinOption *opt = opts->getOption(i);
+
+ switch(opt->getType())
+ {
+ case CHECKBOX:
+ {
+ opt->setValueCheckbox(IsDlgButtonChecked(hwndDlg, id) != 0);
+ break;
+ }
+ case NUMBER:
+ {
+ opt->setValueNumber(SendDlgItemMessage(hwndDlg, id + 1, UDM_GETPOS, 0, 0));
+ break;
+ }
+ case TEXT:
+ {
+ TCHAR tmp[MAX_TEXT_SIZE];
+ GetDlgItemText(hwndDlg, id, tmp, MAX_TEXT_SIZE);
+ opt->setValueText(tmp);
+ break;
+ }
+ }
+
+ id += 2;
+ }
+
+ dlg->storeToDB(opts);
+
+ return TRUE;
+ }
+ break;
+ }
+ }
+
+ return 0;
+}
diff --git a/Plugins/skins/resource.h b/Plugins/skins/resource.h index 8aea224..bedb36e 100644 --- a/Plugins/skins/resource.h +++ b/Plugins/skins/resource.h @@ -3,19 +3,13 @@ // Used by resource.rc
//
#define IDD_OPTIONS 119
-#define IDD_OPTIONS_OLD 120
-#define IDD_EMOTICON_SELECTION 126
-#define IDC_INPUT_TOO 1060
-#define IDC_IGNORE_UPPERCASE 1065
+#define IDD_SKIN_OPT 119
#define IDC_AUTO_USER 1066
-#define IDC_USE_DEFAULT_PACK 1066
-#define IDC_PACK 1075
-#define IDC_GETMORE 1076
-#define IDC_EMOTICONS 1080
-#define IDC_ONLY_ISOLATED 1086
#define IDC_ONLY_ISOLATED2 1087
-#define IDC_CUSTOM_SMILEYS 1087
-#define IDC_STATIC -1
+#define IDC_COMBO1 1087
+#define IDC_SKIN 1087
+#define IDC_SKIN_OPTS_L 1088
+#define IDC_SKIN_L -1
// Next default values for new objects
//
@@ -25,7 +19,7 @@ #define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 128
#define _APS_NEXT_COMMAND_VALUE 40005
-#define _APS_NEXT_CONTROL_VALUE 1087
+#define _APS_NEXT_CONTROL_VALUE 1089
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/Plugins/skins/resource.rc b/Plugins/skins/resource.rc index cac5142..23698c2 100644 --- a/Plugins/skins/resource.rc +++ b/Plugins/skins/resource.rc @@ -27,43 +27,14 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL // Dialog
//
-IDD_OPTIONS_OLD DIALOGEX 0, 0, 252, 105
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
+IDD_SKIN_OPT DIALOGEX 0, 0, 318, 234
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_VSCROLL
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- GROUPBOX " Emoticons ",IDC_EMOTICONS,1,5,250,99
- LTEXT "Pack:",IDC_STATIC,11,20,48,8
- COMBOBOX IDC_PACK,63,18,177,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Replace emoticons in text input area too",IDC_INPUT_TOO,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,230,10
- CONTROL "Use default emoticon pack for unknown protocols",IDC_USE_DEFAULT_PACK,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,230,10
- CONTROL "Ignore words in UPPER CASE",IDC_IGNORE_UPPERCASE,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,10,64,230,10
- CONTROL "Download more emoticon packs",IDC_GETMORE,"Hyperlink",WS_TABSTOP | 0x1,10,85,230,12
-END
-
-IDD_EMOTICON_SELECTION DIALOGEX 0, 0, 188, 90
-STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_BORDER
-EXSTYLE WS_EX_NOPARENTNOTIFY
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
-END
-
-IDD_OPTIONS DIALOGEX 0, 0, 293, 234
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VISIBLE
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- LISTBOX IDC_PACK,7,2,277,148,LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
- CONTROL "Replace emoticons in text input area too",IDC_INPUT_TOO,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,160,277,10
- CONTROL "Use default emoticon pack for unknown protocols",IDC_USE_DEFAULT_PACK,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,172,277,10
- CONTROL "Only replace emoticons surrounded by spaces",IDC_ONLY_ISOLATED,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,184,277,10
- CONTROL "Download more emoticon packs",IDC_GETMORE,"Hyperlink",WS_TABSTOP | 0x1,7,218,277,12
- CONTROL "Enable custom smileys",IDC_CUSTOM_SMILEYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,196,277,10
+ RTEXT "Skin:",IDC_SKIN_L,14,7,63,11
+ COMBOBOX IDC_SKIN,81,5,108,13,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Skin options:",IDC_SKIN_OPTS_L,14,26,283,11
END
@@ -75,15 +46,7 @@ END #ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
- IDD_OPTIONS_OLD, DIALOG
- BEGIN
- LEFTMARGIN, 1
- RIGHTMARGIN, 251
- TOPMARGIN, 1
- BOTTOMMARGIN, 104
- END
-
- IDD_OPTIONS, DIALOG
+ IDD_SKIN_OPT, DIALOG
BEGIN
LEFTMARGIN, 1
TOPMARGIN, 1
|