Ejemplo n.º 1
0
SelectMenu::SelectMenu(MenuManager * m):Menu(m, fs_game_menus::kMenuIdSelect, fs_game_menus::kMenuIdBrief, "mselect.dat",
    "mselout.dat"),
cur_agent_(0), tick_count_(0), rnd_(0), sel_all_(false)
{
    tab_ = TAB_EQUIPS;
    pSelectedWeap_ = NULL;
    selectedWInstId_ = 0;
    pSelectedMod_ = NULL;
    weapon_dragged_ = NULL;

    addStatic(85, 35, 545, "#SELECT_TITLE", FontManager::SIZE_4, false);
    txtTimeId_ = addStatic(500, 9, "", FontManager::SIZE_2, true);       // Time
    moneyTxtId_ = addStatic(500, 87, 128, "0", FontManager::SIZE_2, true);     // Money

    addOption(16, 234, 129, 25, "#SELECT_RES_BUT", FontManager::SIZE_2, fs_game_menus::kMenuIdResearch);
    teamButId_ = addToggleAction(16, 262, 129, 25, "#SELECT_TEAM_BUT", FontManager::SIZE_2, false);
    modsButId_ = addToggleAction(16, 290, 129, 25, "#MENU_MODS_BUT", FontManager::SIZE_2, false);
    equipButId_ = addToggleAction(16, 318, 129, 25, "#MENU_EQUIP_BUT", FontManager::SIZE_2, true);
    acceptButId_ = addOption(16, 346, 129, 25, "#MENU_ACC_BUT", FontManager::SIZE_2, fs_game_menus::kMenuIdLoading);
    addOption(500, 347,  128, 25, "#MENU_MAIN_BUT", FontManager::SIZE_2, fs_game_menus::kMenuIdMain);

    // Team list
    pTeamLBox_ = addTeamListBox(502, 106, 124, 236, false);
    pTeamLBox_->setModel(g_gameCtrl.agents().getAgents());
    // Available weapons list
    pWeaponsLBox_ = addListBox(504, 110,  122, 230, tab_ == TAB_EQUIPS);
    pWeaponsLBox_->setModel(g_gameCtrl.weapons().getAvailableWeapons());
    // Available mods list
    pModsLBox_ = addListBox(504, 110,  122, 230, tab_ == TAB_MODS);
    pModsLBox_->setModel(g_gameCtrl.mods().getAvalaibleMods());

    cancelButId_ = addOption(500, 270,  127, 22, "#MENU_CANCEL_BUT",
        FontManager::SIZE_2, MENU_NO_MENU, false);
    reloadButId_ = addOption(500, 295,  127, 22, "#SELECT_RELOAD_BUT",
        FontManager::SIZE_2, MENU_NO_MENU, false);
    purchaseButId_ = addOption(500, 320,  127, 22, "#SELECT_BUY_BUT",
        FontManager::SIZE_2, MENU_NO_MENU, false);
    sellButId_ = addOption(500, 320,  127, 22, "#SELECT_SELL_BUT",
        FontManager::SIZE_2, MENU_NO_MENU, false);

    // Agent name selected
    txtAgentId_ = addStatic(158, 86, "", FontManager::SIZE_2, true);
}
Ejemplo n.º 2
0
LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
    switch (msg) {
        case WM_PAINT: {
            if(hotkeyPressed) {
                RECT rect;
                GetClientRect(hWnd, &rect);
                InvalidateRect(hWnd, &rect, true);
                hbrush = CreateSolidBrush(RGB(rand() % 250, rand() % 250 , rand() % 250));
            }

            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            FillRect(hdc,&ps.rcPaint, hbrush);

            EndPaint(hWnd, &ps);
        }
            break;

        case WM_CREATE: {
            srand(time(NULL));
            button = new Button("Click me !", 40, 10, 100, 40, hWnd, IDC_BUTTON_1);
            button2 = new Button("Select Item", 540, 10, 100, 20, hWnd, IDC_BUTTON_2);
            GetSystemMenu(hWnd, true);
            hMenu = CreateMenu();
            ADDPOPUPMENU(hMenu, "&Menu Commands");
            ADDMENUITEM(hMenu, MENU_ITEM_1, "&Say Something");
            ADDMENUITEM(hMenu, MENU_ITEM_2, "&Change Button position");
            ADDMENUITEM(hMenu, MENU_ITEM_3, "&Exit");
            SetMenu(hWnd, hMenu);
            RegisterHotKey(hWnd, CONTROL_SPACE, MOD_CONTROL, VK_SPACE);
            RegisterHotKey(hWnd, ALT_LEFT, MOD_ALT, VK_LEFT);
            addListBox(hWnd);

            HICON hIcon = (HICON) LoadImage(NULL, "themes.ico",  IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
            if (hIcon) {
                //Change both icons to the same icon handle.
                SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
                SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
                //This will ensure that the application icon gets changed too.
                SendMessage(GetWindow(hWnd, GW_OWNER), WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
                SendMessage(GetWindow(hWnd, GW_OWNER), WM_SETICON, ICON_BIG, (LPARAM)hIcon);
            }

            break;
        }

        case WM_GETMINMAXINFO: {
            MINMAXINFO *mmi = (MINMAXINFO *) lParam;
            mmi->ptMinTrackSize.x = 500;
            mmi->ptMaxTrackSize.x = 900;
            mmi->ptMinTrackSize.y = 500;
            mmi->ptMaxTrackSize.y = 900;
            return 0;
        }


        case WM_VSCROLL: {
            hotkeyPressed = true;
            SendMessage(hWnd, WM_PAINT, wParam, lParam);
            hotkeyPressed = false;

         CurPos = GetScrollPos(hWnd, SB_CTL);

                switch (LOWORD(wParam))
                {
                case SB_TOP:
                        CurPos = 0;
                        break;

                case SB_LINEUP:
                        if (CurPos > 0)
                                CurPos--;
                        break;

                case SB_THUMBPOSITION:
                        CurPos = HIWORD(wParam);
                        break;

                case SB_THUMBTRACK:
                        CurPos = HIWORD(wParam);
                        break;

                case SB_LINEDOWN:
                        if (CurPos < 240)
                                CurPos++;
                        break;

                case SB_BOTTOM:
                        CurPos = 240;
                        break;

                case SB_ENDSCROLL:
                        break;
                }

        SetScrollPos(hWnd, SB_CTL, CurPos, TRUE);

        }

        case WM_HOTKEY : {
            switch(wParam) {

                case CONTROL_SPACE: {
                    button2->setPos(rand() % 400, rand() % 400);
                    break;
                }

                case ALT_LEFT: {
                    hotkeyPressed = true;
                    SendMessage(hWnd, WM_PAINT, wParam, lParam);
                    hotkeyPressed = false;
                    break;
                }
            }
        }


        case WM_MOUSEMOVE: {
        }

        case WM_COMMAND: {

            switch (LOWORD(wParam)) {

                case IDC_BUTTON_1 : {
                    MessageBox(hWnd, "You just clicked the Button !", "Information", NULL);
                    break;
                }

                case MENU_ITEM_1 : {
                    MessageBox(hWnd, "Something !", "Menu command", NULL);

                    break;
                }

                case MENU_ITEM_2 : {
                    button->setPos( rand() % 400 + 10 , rand() % 400 + 10);
                    break;
                }

                case MENU_ITEM_3 : {
                    PostQuitMessage(0);
                    return 0;
                }



                case IDC_BUTTON_2: {

                    int count  = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
                    cout << count << endl;
                    switch(count){
                        case 0:
                            MessageBox(hWnd, "One", "Listbox", NULL);
                            break;
                        case 1:
                            MessageBox(hWnd, "TWO", "Listbox", NULL);
                            break;
                        case 2:
                            MessageBox(hWnd, "THREE", "Listbox", NULL);
                            break;
                        case 3:
                            MessageBox(hWnd, "FOUR", "Listbox", NULL);
                            break;
                    }
                    return 0;

                }

            }
            break;
        }



        case WM_DESTROY: {
            PostQuitMessage(0);
            return 0;
        }

        case WM_SIZE: {

        }

            break;
    }

    return DefWindowProc(hWnd, msg, wParam, lParam);
}