int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { SetMainWindowText( "LED ドットマトリックスカレンダー" ); // ウインドウタイトルの変更 ChangeWindowMode( TRUE ); // ウィンドウモード SetGraphMode( 600, 540, 16 ); // ウィンドウサイズの変更 SetOutApplicationLogValidFlag( false ); // ログを出力しない // DXライブラリの初期化 if( DxLib_Init() == -1 ) { MessageBox( GetMainWindowHandle(), "DXライブラリの初期化に失敗しました。\nアプリケーションを終了します。", "エラーが発生しました", MB_OK + MB_ICONEXCLAMATION ); return -1; } // 画面の描画先をリアバッファーに設定します。 SetDrawScreen( DX_SCREEN_BACK ); // ここから開始 CalSystem cals; cals.CalMain(); // DXライブラリ終了処理 DxLib_End(); return 0; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Initialization /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void CTaskbar7::Init() { messageHook = NULL; // Do nothing on XP & Vista if (!m_isWindows7) return; // Create an instance of ITaskbarList3 HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList)); // Initialize instance if (SUCCEEDED(hr)) hr = m_pTaskbarList->HrInit(); // Get the main window handle GetMainWindowHandle(); // Create instance of ICustomDestinationList and IApplicationDestinations CoCreateInstance(CLSID_DestinationList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pCustomDestinationList)); CoCreateInstance(CLSID_ApplicationDestinations, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pApplicationDestinations)); }
bool suken::SaveFile( char* filename , char* filetype) { static OPENFILENAME ofn; static TCHAR szPath[ MAX_PATH ]; static TCHAR szFile[ MAX_PATH ]; if ( szPath[0] == TEXT('\0') ){ GetCurrentDirectory( MAX_PATH, szPath ); } if ( ofn.lStructSize == 0 ){ ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner = DxLib::GetMainWindowHandle(); ofn.lpstrInitialDir = szPath; // 初期フォルダ位置 ofn.lpstrFile = filename; // 選択ファイル格納 ofn.nMaxFile = MAX_PATH; ofn.lpstrDefExt = TEXT(".*"); ofn.lpstrFilter = filetype; ofn.lpstrTitle = TEXT("ファイルを保存します。"); ofn.Flags = OFN_FILEMUSTEXIST | OFN_OVERWRITEPROMPT; } if ( GetSaveFileName(&ofn) ){ MessageBox( GetMainWindowHandle(), filename, TEXT("ファイル名を付けて保存"), MB_OK ); } return true; }
bool tTVPApplication::GetNotMinimizing() const { HWND hWnd = GetMainWindowHandle(); if( hWnd != INVALID_HANDLE_VALUE && hWnd != NULL ) { return ::IsIconic( hWnd ) == 0; } return true; // メインがない時は最小化されているとみなす }
void FontApp::Draw() { RECT formatRect; GetClientRect(GetMainWindowHandle(), &formatRect); mFont->DrawText( 0, _T("Hello Direct 3D!") , -1, &formatRect , DT_CENTER | DT_VCENTER , D3DCOLOR_XRGB(rand() % 256, rand() % 256, rand() % 256)); }
//flag=0: Enroll , flag=1: Verify int CreateFaceEnrollWindow(HWND hWnd, int pin) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; if(0==InitFaceEnroll()) return 0; f_pin=pin; regok=0; SetMenuTimeOut(time(NULL)); ismenutimeout=0; hWnd = GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE ; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = "Face"; CreateInfo.hMenu = 0; // CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = FaceEnrollWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; LoadBitmap(HDC_SCREEN, &fvbg, GetBmpPath("mainmenu.jpg")); LoadBitmap(HDC_SCREEN, &fvbar, GetBmpPath("bar.bmp")); hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) { UnloadBitmap(&fvbg); UnloadBitmap(&fvbar); return 0; } ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg, hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); UnloadBitmap(&fvbg); UnloadBitmap(&fvbar); return regok; }
void tTVPApplication::OnActivate( HWND hWnd ) { if( hWnd != GetMainWindowHandle() ) return; application_activating_ = true; TVPRestoreFullScreenWindowAtActivation(); TVPResetVolumeToAllSoundBuffer(); // trigger System.onActivate event TVPPostApplicationActivateEvent(); }
int CreateDelUserWindow(HWND hOwner, char *pin2, int pin) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; memset(&deluser, 0, sizeof(TUser)); if (FDB_GetUserByCharPIN2(pin2, &deluser)==NULL) return 0; // printf("deluser pin %d pin2 %s\n",deluser.PIN,deluser.PIN2); delpin = deluser.PIN; printf("%s, %d, hOwner=0x%X\n", __FUNCTION__, __LINE__, hOwner); delret=0; pwddelhint=0; fpdelhint=0; hOwner = GetMainWindowHandle (hOwner); CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(MID_DELUSER); CreateInfo.hMenu = 0; CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = Delwinproc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = gOptions.LCDWidth; CreateInfo.by = gOptions.LCDHeight; CreateInfo.iBkColor = COLOR_black; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hOwner; hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) return -1; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } printf("start:%s, %d\n", __FUNCTION__, __LINE__); MainWindowThreadCleanup(hMainWnd); printf("end:%s, %d\n", __FUNCTION__, __LINE__); return delret; }
int CreateOneLogWindow(HWND hOwner,int pin,time_t st1,time_t ed1) { MSG Msg; HWND hMainWnd; MAINWINCREATE CreateInfo; hOwner = GetMainWindowHandle (hOwner); InitMiniGUIExt(); findret=1; oneuserpin=pin; onesttm=st1; oneedtm=ed1; mylogcount=0; //CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwStyle = WS_VISIBLE; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(MID_ATTQUERY); CreateInfo.hMenu = 0; //CreateInfo.hCursor = GetSystemCursor(0); printf("______%s%d\n", __FILE__, __LINE__); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = ControlOneLogWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = gOptions.LCDWidth; CreateInfo.by = gOptions.LCDHeight; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hOwner; hMainWnd = CreateMainWindow (&CreateInfo); if (hMainWnd == HWND_INVALID) return -1; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&Msg, hMainWnd)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } MainWindowThreadCleanup (hMainWnd); MiniGUIExtCleanUp (); return findret; }
int CreateWiFiPWDWindow(HWND hWnd, int ptype) { char wincap[20]; MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; pwdmode=ptype; hWnd = GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE|WS_BORDER|WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; if(pwdmode) //WPA sprintf(wincap, "%s%s", LoadStrByID(MID_WIFI_PWDWPA), LoadStrByID(MID_PWD)); else //WEP sprintf(wincap, "%s%s", LoadStrByID(MID_WIFI_PWDWEP), LoadStrByID(MID_PWD)); CreateInfo.spCaption = wincap; CreateInfo.hMenu = 0; //CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = WiFiPWDWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; //if (LoadBitmap(HDC_SCREEN,&wifipwdbkg,GetBmpPath("submenubg.jpg"))) // return 0; hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) return 0; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); return 0; }
void tTVPApplication::OnDeactivate( HWND hWnd ) { if( hWnd != GetMainWindowHandle() ) return; application_activating_ = false; TVPMinimizeFullScreenWindowAtInactivation(); // fire compact event TVPDeliverCompactEvent(TVP_COMPACT_LEVEL_DEACTIVATE); // set sound volume TVPResetVolumeToAllSoundBuffer(); // trigger System.onDeactivate event TVPPostApplicationDeactivateEvent(); }
int CreateModemWindow(HWND hWnd) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; hWnd = GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(MID_MODEM_MOBILENET); CreateInfo.hMenu = 0; CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = ModemWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; if (LoadBitmap(HDC_SCREEN, &ModemBkg, GetBmpPath("submenubg.jpg"))){ return 0; } hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID){ return 0; } ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); return 0; }
int CreateNewWiFiWindow(HWND hWnd, char* selssid) { MSG msg; MAINWINCREATE CreateInfo; LoadWindowStr(); memset(my_ssid, 0, sizeof(my_ssid)); nstrcpy(my_ssid, selssid, strlen(selssid)); hWnd = GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE|WS_BORDER|WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(MID_WIFI_SETTING); CreateInfo.hMenu = 0; CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = NewWiFiWinProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; if (LoadBitmap(HDC_SCREEN,&wifibkg,GetBmpPath("submenubg.jpg"))) { return 0; } WififHwnd = CreateMainWindow(&CreateInfo); if (WififHwnd == HWND_INVALID) { return -1; } ShowWindow(WififHwnd, SW_SHOWNORMAL); while (GetMessage(&msg,WififHwnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(WififHwnd); return 0; }
int CreateSMSBoard(HWND hWnd, int smscount) { MSG msg; MAINWINCREATE CreateInfo; bsmscount = smscount; // printf("bsmscount:%d\n",bsmscount); if(!GetIDX2List(bsmscount)) return 0; hWnd= GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE;// | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = ""; CreateInfo.hMenu = 0; //CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = boardwinproc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = gOptions.LCDWidth;//g_rcScr.right; CreateInfo.by = gOptions.LCDHeight;//g_rcScr.bottom; //CreateInfo.iBkColor = COLOR_lightgray; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; hSMSWnd = CreateMainWindow(&CreateInfo); if (hSMSWnd == HWND_INVALID) return 0; ShowWindow(hSMSWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hSMSWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hSMSWnd); return 0; }
int SSR_MENU_ATTPHOTO(HWND hWnd) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; hWnd = GetMainWindowHandle(hWnd); CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(PID_PHOTO_MNG); CreateInfo.hMenu = 0; // CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = AttPhotoProc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; //LoadSystem1Str(); hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) return 0; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg, hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); return 0; }
int CreateMainStateWindow(HWND hOwner,int key) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; putkey=key; hOwner = GetMainWindowHandle (hOwner); CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = ""; CreateInfo.hMenu = 0; CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = mainstatewinproc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = g_rcScr.right; CreateInfo.by = g_rcScr.bottom; CreateInfo.iBkColor = 0xFF00A2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hOwner; hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) return -1; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); return 1; }
int DuressParameterWindow(HWND hWnd) { MSG msg; HWND hMainWnd; MAINWINCREATE CreateInfo; hWnd = GetMainWindowHandle (hWnd); CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION; CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = LoadStrByID(MID_LOCK_OP6); CreateInfo.hMenu = 0; //CreateInfo.hCursor = GetSystemCursor(0); CreateInfo.hIcon = 0; CreateInfo.MainWindowProc = duressparawinproc; CreateInfo.lx = 0; CreateInfo.ty = 0; CreateInfo.rx = gOptions.LCDWidth; CreateInfo.by = gOptions.LCDHeight; //CreateInfo.iBkColor = COLOR_lightgray; CreateInfo.iBkColor = 0x00FFA2BE; CreateInfo.dwAddData = 0; CreateInfo.hHosting = hWnd; hMainWnd = CreateMainWindow(&CreateInfo); if (hMainWnd == HWND_INVALID) return 0; ShowWindow(hMainWnd, SW_SHOWNORMAL); while (GetMessage(&msg,hMainWnd)) { TranslateMessage(&msg); DispatchMessage(&msg); } MainWindowThreadCleanup(hMainWnd); return 0; }
static void display_alert(int title_id, const char *text, int flags) { HWND hMainWnd = GetMainWindowHandle(); MessageBox(hMainWnd, text, GetString(title_id), MB_OK | flags); }
static HWND GetHandle() { return GetMainWindowHandle(); }
bool ClientHandler::OnFileDialog(CefRefPtr<CefBrowser> browser, FileDialogMode mode, const CefString& title, const CefString& default_file_name, const std::vector<CefString>& accept_types, CefRefPtr<CefFileDialogCallback> callback) { std::vector<CefString> files; GtkFileChooserAction action; const gchar* accept_button; if (mode == FILE_DIALOG_OPEN || mode == FILE_DIALOG_OPEN_MULTIPLE) { action = GTK_FILE_CHOOSER_ACTION_OPEN; accept_button = GTK_STOCK_OPEN; } else if (mode == FILE_DIALOG_SAVE) { action = GTK_FILE_CHOOSER_ACTION_SAVE; accept_button = GTK_STOCK_SAVE; } else { NOTREACHED(); return false; } std::string base_name; if (!default_file_name.empty()) { base_name = basename(const_cast<char*>(default_file_name.ToString().c_str())); } std::string title_str; if (!title.empty()) { title_str = title; } else { switch (mode) { case FILE_DIALOG_OPEN: title_str = "Open File"; break; case FILE_DIALOG_OPEN_MULTIPLE: title_str = "Open Files"; break; case FILE_DIALOG_SAVE: title_str = "Save File"; break; default: break; } } GtkWidget* window = gtk_widget_get_ancestor( GTK_WIDGET(GetMainWindowHandle()), GTK_TYPE_WINDOW); GtkWidget* dialog = gtk_file_chooser_dialog_new( title_str.c_str(), GTK_WINDOW(window), action, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, accept_button, GTK_RESPONSE_ACCEPT, NULL); if (mode == FILE_DIALOG_OPEN_MULTIPLE) { gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), TRUE); } else if (mode == FILE_DIALOG_SAVE) { gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE); } if (mode == FILE_DIALOG_SAVE && !base_name.empty()) { gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), base_name.c_str()); } AddFiltersForAcceptTypes(GTK_FILE_CHOOSER(dialog), accept_types, true); bool success = false; if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { if (mode == FILE_DIALOG_OPEN || mode == FILE_DIALOG_SAVE) { char* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); files.push_back(std::string(filename)); success = true; } else if (mode == FILE_DIALOG_OPEN_MULTIPLE) { GSList* filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); if (filenames) { for (GSList* iter = filenames; iter != NULL; iter = g_slist_next(iter)) { std::string path(static_cast<char*>(iter->data)); g_free(iter->data); files.push_back(path); } g_slist_free(filenames); success = true; } } } gtk_widget_destroy(dialog); if (success) callback->Continue(files); else callback->Cancel(); return true; }
bool ClientHandler::OnJSDialog(CefRefPtr<CefBrowser> browser, const CefString& origin_url, const CefString& accept_lang, JSDialogType dialog_type, const CefString& message_text, const CefString& default_prompt_text, CefRefPtr<CefJSDialogCallback> callback, bool& suppress_message) { CEF_REQUIRE_UI_THREAD(); GtkButtonsType buttons = GTK_BUTTONS_NONE; GtkMessageType gtk_message_type = GTK_MESSAGE_OTHER; std::string title; switch (dialog_type) { case JSDIALOGTYPE_ALERT: buttons = GTK_BUTTONS_NONE; gtk_message_type = GTK_MESSAGE_WARNING; title = "JavaScript Alert"; break; case JSDIALOGTYPE_CONFIRM: buttons = GTK_BUTTONS_CANCEL; gtk_message_type = GTK_MESSAGE_QUESTION; title = "JavaScript Confirm"; break; case JSDIALOGTYPE_PROMPT: buttons = GTK_BUTTONS_CANCEL; gtk_message_type = GTK_MESSAGE_QUESTION; title = "JavaScript Prompt"; break; } js_dialog_callback_ = callback; if (!origin_url.empty()) { title += " - "; title += origin_url.ToString(); } GtkWidget* window = gtk_widget_get_ancestor( GTK_WIDGET(GetMainWindowHandle()), GTK_TYPE_WINDOW); gtk_dialog_ = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL, gtk_message_type, buttons, "%s", message_text.ToString().c_str()); g_signal_connect(gtk_dialog_, "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), NULL); gtk_window_set_title(GTK_WINDOW(gtk_dialog_), title.c_str()); GtkWidget* ok_button = gtk_dialog_add_button(GTK_DIALOG(gtk_dialog_), GTK_STOCK_OK, GTK_RESPONSE_OK); if (dialog_type != JSDIALOGTYPE_PROMPT) gtk_widget_grab_focus(ok_button); if (dialog_type == JSDIALOGTYPE_PROMPT) { GtkWidget* content_area = gtk_dialog_get_content_area(GTK_DIALOG(gtk_dialog_)); GtkWidget* text_box = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(text_box), default_prompt_text.ToString().c_str()); gtk_box_pack_start(GTK_BOX(content_area), text_box, TRUE, TRUE, 0); g_object_set_data(G_OBJECT(gtk_dialog_), kPromptTextId, text_box); gtk_entry_set_activates_default(GTK_ENTRY(text_box), TRUE); } gtk_dialog_set_default_response(GTK_DIALOG(gtk_dialog_), GTK_RESPONSE_OK); g_signal_connect(gtk_dialog_, "response", G_CALLBACK(OnDialogResponse), this); gtk_widget_show_all(GTK_WIDGET(gtk_dialog_)); return true; }
HRESULT WINAPI Plugin::Initialize(IAIMPCore *Core) { Gdiplus::GdiplusStartupInput gdiplusStartupInput; if (Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL) != Gdiplus::Status::Ok) return E_FAIL; m_core = Core; AIMPString::Init(Core); if (FAILED(m_core->QueryInterface(IID_IAIMPServiceMUI, reinterpret_cast<void **>(&m_muiService)))) { Finalize(); return E_FAIL; } if (!Config::Init(Core)) { Finalize(); return E_FAIL; } if (!AimpHTTP::Init(Core)) { Finalize(); return E_FAIL; } if (!AimpMenu::Init(Core)) { Finalize(); return E_FAIL; } Config::LoadExtendedConfig(); m_accessToken = Config::GetString(L"AccessToken"); if (AimpMenu *addMenu = AimpMenu::Get(AIMP_MENUID_PLAYER_PLAYLIST_ADDING)) { addMenu->Add(Lang(L"SoundCloud.Menu\\AddURL"), [this](IAIMPMenuItem *) { AddURLDialog::Show(); }, IDB_ICON)->Release(); delete addMenu; } if (AimpMenu *playlistMenu = AimpMenu::Get(AIMP_MENUID_PLAYER_PLAYLIST_MANAGE)) { playlistMenu->Add(Lang(L"SoundCloud.Menu\\MyTracksAndPlaylists"), [this](IAIMPMenuItem *) { SoundCloudAPI::LoadMyTracksAndPlaylists(); }, IDB_ICON, [this](IAIMPMenuItem *item) { item->SetValueAsInt32(AIMP_MENUITEM_PROPID_VISIBLE, isConnected()); })->Release(); playlistMenu->Add(Lang(L"SoundCloud.Menu\\MyStream"), [this](IAIMPMenuItem *) { if (!isConnected()) { OptionsDialog::Connect(SoundCloudAPI::LoadStream); return; } SoundCloudAPI::LoadStream(); }, IDB_ICON)->Release(); playlistMenu->Add(Lang(L"SoundCloud.Menu\\MyLikes"), [this](IAIMPMenuItem *) { if (!isConnected()) { OptionsDialog::Connect(SoundCloudAPI::LoadLikes); return; } SoundCloudAPI::LoadLikes(); }, IDB_ICON)->Release(); delete playlistMenu; } auto enableIfValid = [this](IAIMPMenuItem *item) { int valid = 0; ForSelectedTracks([&valid](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) valid++; return 0; }); item->SetValueAsInt32(AIMP_MENUITEM_PROPID_VISIBLE, valid > 0); }; if (AimpMenu *contextMenu = AimpMenu::Get(AIMP_MENUID_PLAYER_PLAYLIST_CONTEXT_FUNCTIONS)) { AimpMenu *recommendations = new AimpMenu(contextMenu->Add(Lang(L"SoundCloud.Menu\\LoadRecommendations", 0), nullptr, IDB_ICON, enableIfValid)); recommendations->Add(Lang(L"SoundCloud.Menu\\LoadRecommendations", 1), [this](IAIMPMenuItem *) { ForSelectedTracks([](IAIMPPlaylist *pl, IAIMPPlaylistItem *item, int64_t id) -> int { if (id > 0) { SoundCloudAPI::LoadRecommendations(id, false, item); } return 0; }); })->Release(); recommendations->Add(Lang(L"SoundCloud.Menu\\LoadRecommendations", 2), [this](IAIMPMenuItem *) { ForSelectedTracks([](IAIMPPlaylist *pl, IAIMPPlaylistItem *item, int64_t id) -> int { if (id > 0) { SoundCloudAPI::LoadRecommendations(id, true, item); } return 0; }); })->Release(); delete recommendations; contextMenu->Add(Lang(L"SoundCloud.Menu\\OpenInBrowser"), [this](IAIMPMenuItem *) { ForSelectedTracks([this](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) { wchar_t url[256]; wsprintf(url, L"https://api.soundcloud.com/tracks/%ld?client_id=" TEXT(CLIENT_ID) L"&oauth_token=", id); AimpHTTP::Get(url + m_accessToken, [this](unsigned char *data, int size) { rapidjson::Document d; d.Parse(reinterpret_cast<const char *>(data)); if (d.IsObject() && d.HasMember("permalink_url")) { ShellExecuteA(GetMainWindowHandle(), "open", d["permalink_url"].GetString(), NULL, NULL, SW_SHOWNORMAL); } }); } return 0; }); }, IDB_ICON, enableIfValid)->Release(); contextMenu->Add(Lang(L"SoundCloud.Menu\\AddToExclusions"), [this](IAIMPMenuItem *) { ForSelectedTracks([](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) { Config::TrackExclusions.insert(id); return FLAG_DELETE_ITEM; } return 0; }); Config::SaveExtendedConfig(); }, IDB_ICON, enableIfValid)->Release(); contextMenu->Add(Lang(L"SoundCloud.Menu\\Repost"), [this](IAIMPMenuItem *) { ForSelectedTracks([](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) { SoundCloudAPI::RepostSong(id); } return 0; }); }, IDB_ICON, enableIfValid)->Release(); contextMenu->Add(Lang(L"SoundCloud.Menu\\LikeUnlike", 0), [this](IAIMPMenuItem *) { ForSelectedTracks([](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) { if (Config::Likes.find(id) != Config::Likes.end()) { SoundCloudAPI::UnlikeSong(id); Config::Likes.erase(id); } else { SoundCloudAPI::LikeSong(id); Config::Likes.insert(id); } } return 0; }); Timer::SingleShot(1000, SoundCloudAPI::LoadLikes); Config::SaveExtendedConfig(); }, IDB_ICON, [this](IAIMPMenuItem *item) { int likes = 0; int unlikes = 0; int valid = 0; ForSelectedTracks([&](IAIMPPlaylist *, IAIMPPlaylistItem *, int64_t id) -> int { if (id > 0) { valid++; if (Config::Likes.find(id) != Config::Likes.end()) { unlikes++; } else { likes++; } } return 0; }); if (valid == 0) { item->SetValueAsInt32(AIMP_MENUITEM_PROPID_VISIBLE, false); return; } item->SetValueAsInt32(AIMP_MENUITEM_PROPID_VISIBLE, true); if (unlikes == 0) { item->SetValueAsObject(AIMP_MENUITEM_PROPID_NAME, AIMPString(Lang(L"SoundCloud.Menu\\LikeUnlike", 1))); // Like } else if (likes == 0) { item->SetValueAsObject(AIMP_MENUITEM_PROPID_NAME, AIMPString(Lang(L"SoundCloud.Menu\\LikeUnlike", 2))); // Unlike } else { item->SetValueAsObject(AIMP_MENUITEM_PROPID_NAME, AIMPString(Lang(L"SoundCloud.Menu\\LikeUnlike", 0))); // Like / Unlike } })->Release(); delete contextMenu; } if (FAILED(m_core->QueryInterface(IID_IAIMPServicePlaylistManager, reinterpret_cast<void **>(&m_playlistManager)))) { Finalize(); return E_FAIL; } if (FAILED(m_core->QueryInterface(IID_IAIMPServiceMessageDispatcher, reinterpret_cast<void **>(&m_messageDispatcher)))) { Finalize(); return E_FAIL; } m_messageHook = new MessageHook(this); if (FAILED(m_messageDispatcher->Hook(m_messageHook))) { delete m_messageHook; Finalize(); return E_FAIL; } if (FAILED(m_core->RegisterExtension(IID_IAIMPServiceOptionsDialog, static_cast<OptionsDialog::Base *>(new OptionsDialog(this))))) { Finalize(); return E_FAIL; } if (FAILED(m_core->RegisterExtension(IID_IAIMPServicePlaylistManager, new PlaylistListener()))) { Finalize(); return E_FAIL; } if (Config::GetInt32(L"CheckOnStartup", 1)) { Timer::SingleShot(2000, MonitorCallback); } StartMonitorTimer(); return S_OK; }