bool CMainWindow::LoadFile(HANDLE hFile) { InitEditor(); char data[4096] = { 0 }; DWORD dwRead = 0; BOOL bRet = ReadFile(hFile, data, sizeof(data), &dwRead, NULL); bool bUTF8 = IsUTF8(data, dwRead); while ((dwRead > 0) && (bRet)) { SendEditor(SCI_ADDTEXT, dwRead, reinterpret_cast<LPARAM>(static_cast<char *>(data))); bRet = ReadFile(hFile, data, sizeof(data), &dwRead, NULL); } SetupWindow(bUTF8); return true; }
void ScriptManager::InitDlg (HWND dlg) { HWND sci = CreateEditControl(dlg); ShowWindow(sci, SW_SHOW); SetFocus(sci); stec.SetWindow(reinterpret_cast<long>(sci)); if (!edPtr->tData->scripts) { edPtr->tData->scripts = new ScriptSet(mV); edPtr->tData->scripts->Refresh(mV, edPtr); } InitEditor(sci); InitLists(dlg); ScriptManager& sm = ScriptManager::Get(); ResizeSetup(dlg, sm.prefDlgWidth, sm.prefDlgHeight); }
bool CMainWindow::LoadFile(LPCTSTR filename) { InitEditor(); FILE *fp = NULL; _tfopen_s(&fp, filename, L"rb"); if (!fp) return false; //SetTitle(); char data[4096] = { 0 }; size_t lenFile = fread(data, 1, sizeof(data), fp); bool bUTF8 = IsUTF8(data, lenFile); while (lenFile > 0) { SendEditor(SCI_ADDTEXT, lenFile, reinterpret_cast<LPARAM>(static_cast<char *>(data))); lenFile = fread(data, 1, sizeof(data), fp); } fclose(fp); SetupWindow(bUTF8); m_filename = filename; return true; }
// Handle mouse event void _Menu::MouseEvent(const _MouseEvent &MouseEvent) { if(State == STATE_NONE) return; if(!CurrentLayout) return; if(MouseEvent.Button == SDL_BUTTON_LEFT) CurrentLayout->HandleInput(MouseEvent.Pressed); // Get clicked element _Element *Clicked = CurrentLayout->GetClickedElement(); if(Clicked) { bool DoubleClick = false; if(PreviousClick == Clicked && PreviousClickTimer < MENU_DOUBLECLICK_TIME) { PreviousClick = nullptr; DoubleClick = true; } else PreviousClick = Clicked; PreviousClickTimer = 0.0; switch(State) { case STATE_TITLE: { if(Clicked->Identifier == "button_title_play") { PlayState.Connect(true); } else if(Clicked->Identifier == "button_title_joinserver") { InitConnect(true); } else if(Clicked->Identifier == "button_title_mapeditor") { InitEditor(); } else if(Clicked->Identifier == "button_title_exit") { Framework.Done = true; } } break; case STATE_CHARACTERS: { if(CharactersState == CHARACTERS_NONE) { if(Clicked->Identifier == "button_characters_delete") { size_t SelectedSlot = GetSelectedCharacter(); if(SelectedSlot < CharacterSlots.size() && CharacterSlots[SelectedSlot].Used) { _Buffer Packet; Packet.Write<PacketType>(PacketType::CHARACTERS_DELETE); Packet.Write<uint8_t>((uint8_t)SelectedSlot); PlayState.Network->SendPacket(Packet); } } else if(Clicked->Identifier == "button_characters_play") { size_t SelectedSlot = GetSelectedCharacter(); if(SelectedSlot < CharacterSlots.size() && CharacterSlots[SelectedSlot].Used) { PlayCharacter(SelectedSlot); } } else if(Clicked->Identifier == "button_characters_back") { PlayState.Network->Disconnect(); } else if(Clicked->Identifier.substr(0, CharacterButtonPrefix.size()) == CharacterButtonPrefix) { // Deselect slots _Element *CharactersElement = Assets.Elements["element_menu_characters"]; for(auto &Element : CharactersElement->Children) { if(Element->Identifier.substr(0, CharacterButtonPrefix.size()) == CharacterButtonPrefix) { _Button *Button = (_Button *)Element; Button->Checked = false; } } // Set selection size_t SelectedSlot = (size_t)(intptr_t)Clicked->UserData; CharacterSlots[SelectedSlot].Button->Checked = true; // Open new character screen if(!CharacterSlots[SelectedSlot].Used) InitNewCharacter(); UpdateCharacterButtons(); if(DoubleClick && SelectedSlot < CharacterSlots.size()) { PlayCharacter(SelectedSlot); } } } else if(CharactersState == CHARACTERS_CREATE) { if(Clicked->Identifier == NewCharacterPortraitPrefix || Clicked->Identifier == NewCharacterBuildPrefix) { size_t SelectedID = (size_t)(intptr_t)Clicked->UserData; // Unselect all portraits and select the clicked element for(auto &Element : Clicked->Parent->Children) { _Button *Button = (_Button *)Element; Button->Checked = false; if((size_t)(intptr_t)Button->UserData == SelectedID) { _TextBox *Name = Assets.TextBoxes["textbox_newcharacter_name"]; FocusedElement = Name; Name->ResetCursor(); Button->Checked = true; } } ValidateCreateCharacter(); } else if(Clicked->Identifier == "button_newcharacter_create") { CreateCharacter(); } else if(Clicked->Identifier == "button_newcharacter_cancel") { RequestCharacterList(); } } } break; case STATE_CONNECT: { if(Clicked->Identifier == "button_connect_connect") { if(!PlayState.Network->IsDisconnected()) { PlayState.Network->Disconnect(true); InitConnect(false); } else ConnectToHost(); } else if(Clicked->Identifier == "button_connect_back") { InitTitle(true); } } break; case STATE_ACCOUNT: { if(Clicked->Identifier == "button_account_login") { SendAccountInfo(); } else if(Clicked->Identifier == "button_account_create") { SendAccountInfo(true); } else if(Clicked->Identifier == "button_account_back") { InitConnect(true); } } break; case STATE_INGAME: { if(Clicked->Identifier == "button_ingame_resume") { InitPlay(); } else if(Clicked->Identifier == "button_ingame_disconnect") { PlayState.Network->Disconnect(); } } break; default: break; } } }