コード例 #1
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::menuFileLoad()
{
	static std::string fn;
	const bool r = FileOpenDlg("Load model file:", FileChooserPattern, fn);

	if (r) {
		Load(fn);
		UpdateTitle();
	}
}
コード例 #2
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::BrowseForTexture(int textureIndex)
{
	static std::string fn;
	if (FileOpenDlg ("Select texture:", ImageFileExt, fn))
	{
		Texture *tex = new Texture (fn);
		if (!tex->IsLoaded ()) 
			delete tex;
		else
			SetModelTexture (textureIndex, tex);
		BACKUP_POINT("Texture change");
		Update();
	}
}
コード例 #3
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::menuScriptLoad()
{
	const char *pattern ="Lua script (LUA)\0*.lua\0";

	static std::string lastLuaScript;
	if (FileOpenDlg("Load script:", pattern, lastLuaScript))
	{
		if (luaL_dofile(luaState, lastLuaScript.c_str()) != 0)
		{
			const char *err = lua_tostring(luaState, -1);
			fltk::message("Error while executing %s: %s", lastLuaScript.c_str(), err);
		}
	}
}
コード例 #4
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::menuObjectLoad()
{
	MdlObject* obj = GetSingleSel();
	if (!obj) return;

	static std::string fn;
	if (FileOpenDlg("Load object:", FileChooserPattern, fn)) {
		Model* submdl = Model::Load(fn);
		if (submdl)
			model->InsertModel (obj, submdl);

		delete submdl;
		BACKUP_POINT("Load object");
		Update();
	}
}
コード例 #5
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::menuMappingImportUV() {
	static std::string fn;
	if (FileOpenDlg("Select model to copy UV co�dinates from:", FileChooserPattern, fn))
	{
		IProgressCtl progctl;

		progctl.cb = EditorUIProgressCallback;
		progctl.data = this;

		progress->range (0.0f, 1.0f, 0.01f);
		progress->position (0.0f);
		progress->show ();
		model->ImportUVMesh(fn.c_str(), progctl);
		progress->hide ();
		BACKUP_POINT("UV mapping imported");
	}
}
コード例 #6
0
const char *EditorUI::FileChooser (const char *msg, const char *pattern, const char *prev, bool save)
{
    static std::string fn;
    bool r;

    if (save)
        r = FileSaveDlg (msg,pattern,fn);
    else
        r = FileOpenDlg(msg,pattern,fn);

    if (r)
        return fn.c_str();

    return 0;

    //char *r = fltk::file_chooser (msg, pattern, prev, save);
    //return r;
}
コード例 #7
0
ファイル: TexGroupUI.cpp プロジェクト: SpliFF/upspring
void TexGroupUI::LoadGroup()
{
	static std::string fn;
	if (!current)
		return;

	if (FileOpenDlg ("Load file:", GroupConfigPattern, fn)) {
		CfgList* cfg=CfgValue::LoadFile (fn.c_str());
		if (!cfg) {
			fltk::message ("Failed to read %s\n", fn.c_str());
			return;
		}
		TextureGroup *tg = texGroupHandler->LoadGroup (cfg);
		if (tg) {
			tg->name = fltk::filename_name(fn.c_str());
			UpdateGroupList ();
		}
	}
}
コード例 #8
0
ファイル: Editor.cpp プロジェクト: Neoniet/upspring
void EditorUI::menuObjectReplace()
{
	MdlObject* old = GetSingleSel();
	if (!old) return;
	char buf[128];
	sprintf (buf, "Select model to replace \'%s\' ", old->name.c_str());
	static std::string fn;
	if (FileOpenDlg(buf, FileChooserPattern, fn)) {
		Model *submdl = Model::Load(fn);
		if (submdl) {
			model->ReplaceObject (old, submdl->root);
			submdl->root = 0;

			BACKUP_POINT("Replace object");
			Update ();
		}
		delete submdl;
	}
}
コード例 #9
0
/*------------------------------------------------------------------------------------------------------------------
-- FUNCTION: Window_OnCommand
--
-- DATE: November 12, 2013
--
-- REVISIONS:
-- November 13, 2013 - Mat Siwoski: Completed implementation of the SendFile
-- November 13, 2013 - Mat Siwoski: Implementation of the Config option.
-- November 18, 2013 - Robin Hsieh: Added the enabling and disabling menu items.
-- November 25, 2013 - Vincent Lau: Added creation of the Transmit thread after successful file read operation
-- November 26, 2013 - Mat Siwoski: Added case for saving displayed text.
-- November 27, 2013 - Robin Hsieh: Tested ErrorCheck in the file being read in.
--
-- DESIGNER: Mat Siwoski
--
-- PROGRAMMER: Mat Siwoski
--
-- INTERFACE: void Window_OnCommand (HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
--				HWND hwnd: Handle to the window
--				int id: The id of the selection.
--				HWND hwndCtl: Handle to the control.
--				UINT codeNotify: Int for the Notification
--
-- RETURNS: -
--
-- NOTES:
-- This function deals with the selection in the menu on the main window.
------------------------------------------------------------------------------------------------------------------*/
void Window_OnCommand (HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) {
    static TCHAR szFileName[MAX_PATH], szTitleName[MAX_PATH] ;

    switch(id) {
    case IDM_CONNECT:
        EnableMenuItem(GetMenu(hwnd), IDM_CONNECT, MF_DISABLED);
        EnableMenuItem(GetMenu(hwnd), IDM_DISCONNECT, MF_ENABLED);
        DrawMenuBar(hwnd);
        break;
    case IDM_SENDFILE:
        DWORD dwTransmitThreadID;
        if (FileOpenDlg(hwnd, szFileName, szTitleName)) {
            if (!FileRead(hwnd, szFileName)) { // error file could not be read
                OkMessage (hwnd, TEXT ("Could not read file %s!"),
                           szTitleName) ;
                szFileName[0]  = '\0' ;
                szTitleName[0] = '\0' ;
            }
            else // success file read
            {
                // Clean up thread
                TerminateThread(hTransmitThread, 0);
                CloseHandle(hTransmitThread);
                ReleaseSemaphore(hFileWaitSemaphore, 1, NULL);
                // create transmit thread for this file
                hTransmitThread = CreateThread(NULL, 0, TransmitThread, pszFileText, 0, &dwTransmitThreadID);
            }
        }
        break;
    case IDM_SAVEFILE:
        if (FileSaveDlg(hwnd, szFileName, szTitleName)) {
            if (!FileSave(hwnd, szFileName)) {
                OkMessage(hwnd, TEXT ("Could not write file %s"), szTitleName) ;
                break;
            }
        }
        break;
    case IDM_DISCONNECT:
        EnableMenuItem(GetMenu(hwnd), IDM_CONNECT, MF_ENABLED);
        EnableMenuItem(GetMenu(hwnd), IDM_DISCONNECT, MF_DISABLED);
        DrawMenuBar(hwnd);
        break;
    case IDM_CONFIG:
        DWORD dwReceiveThreadID;
        TerminateThread(hReceiveThread, 0);
        CloseHandle(hReceiveThread);
        if(SetupPort(lpszCommName)) {
            if (ConfPort(&MainWindow, lpszCommName)) {
                // Set Read flag true
                bWantToRead		= TRUE;
                hReceiveThread	= CreateThread(NULL, 0, ReceiveThread, &hEdit, 0, &dwReceiveThreadID);
                break;
            }
        }
        break;
    case IDM_ABOUT:
        DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc) ;
        break;
    case IDM_EXIT:
        Window_OnDestroy(hwnd);
        break;
    }
}
コード例 #10
0
ファイル: main.cpp プロジェクト: keyring/whisperAI
LRESULT CALLBACK WindowProc( HWND hwnd,
			     UINT msg,
			     WPARAM wParam,
			     LPARAM lParam ){
  
  static int cxClient, cyClient;
  
  static HDC hdcBackBuffer;
  static HBITMAP hBitmap = NULL;
  static HBITMAP hOldBitmap = NULL;
  
  static TCHAR filename[MAX_PATH], titlename[MAX_PATH];
  static RECT rectClientWindow;
  static int currentSearchButton = 0;
  
  static int ToolBarHeight;
  
  switch(msg){
    
  case WM_CREATE:{
    srand((unsigned) time(NULL));
    hdcBackBuffer = CreateCompatibleDC(NULL);

	//get the DC for front buffer
    HDC hdc = GetDC(hwnd);
    
    hBitmap = CreateCompatibleBitmap( hdc,
				      cxClient,
				      cyClient);

    hOldBitmap = (HBITMAP)SelectObject( hdcBackBuffer, hBitmap );

    ReleaseDC(hwnd, hdc);

    g_pathFinder = new PathFinder();

    CheckMenuItemAppropriately( hwnd, IDM_VIEW_TILES, g_pathFinder->IsShowTilesOn());
    CheckMenuItemAppropriately( hwnd, IDM_VIEW_GRAPH, g_pathFinder->IsShowGraphOn());
  }
    break;

  case UM_TOOLBAR_HAS_BEEN_CREATED:{
    RECT rectToolbar;
    GetWindowRect( g_hwndToolbar, &rectToolbar);
    ToolBarHeight = abs(rectToolbar.bottom - rectToolbar.top);

    rectClientWindow.left = 0;
    rectClientWindow.right = CLIENTWIDTH;
    rectClientWindow.top = 0;
    rectClientWindow.bottom = CLIENTHEIGHT + INFOWINDOWHEIGHT;

    ResizeToCorrectClientArea( hwnd, ToolBarHeight, rectClientWindow );

    SendMessage( g_hwndToolbar, WM_SIZE, wParam, lParam );

    GetClientRect( hwnd, &rectClientWindow );
    rectClientWindow.bottom = CLIENTHEIGHT - ToolBarHeight - 1;

    hdcBackBuffer = CreateCompatibleDC(NULL);

    HDC hdc = GetDC(hwnd);

    hBitmap = CreateCompatibleBitmap( hdc,
				      rectClientWindow.right,
				      rectClientWindow.bottom );

    hOldBitmap = (HBITMAP)SelectObject(hdcBackBuffer, hBitmap);

    ReleaseDC(hwnd, hdc);
  }
    break;

  case WM_KEYUP:{

    switch(wParam){
    case VK_ESCAPE:
      SendMessage( hwnd, WM_DESTROY, NULL, NULL ); break;
    case 'G':
      g_pathFinder->ToggleShowGraph(); break;
    case 'T':
      g_pathFinder->ToggleShowTiles(); break;
    } // switch

    RedrawWindowRect( hwnd, false, rectClientWindow ); 
  }
    break;

  case WM_LBUTTONDOWN:{
    g_pathFinder->PaintTerrain(MAKEPOINTS(lParam));
    RedrawWindowRect( hwnd, false, rectClientWindow );
  }
    break;

  case WM_MOUSEMOVE:{
    switch(wParam){
    case MK_LBUTTON:{
      g_pathFinder->PaintTerrain(MAKEPOINTS(lParam));
      RedrawWindowRect( hwnd, false, rectClientWindow );
    }
      break;
    }
  }
   // break;

  case WM_COMMAND:{

    switch(wParam){

    case ID_BUTTON_STOP:
      g_pathFinder->ChangeBrush( PathFinder::TARGET );      break;
    case ID_BUTTON_START:
      g_pathFinder->ChangeBrush( PathFinder::SOURCE );      break;
    case ID_BUTTON_OBSTACLE:
      g_pathFinder->ChangeBrush( PathFinder::OBSTACLE );    break;
    case ID_BUTTON_WATER:
      g_pathFinder->ChangeBrush( PathFinder::WATER );       break;
    case ID_BUTTON_MUD:
      g_pathFinder->ChangeBrush( PathFinder::MUD );         break;
    case ID_BUTTON_NORMAL:
      g_pathFinder->ChangeBrush( PathFinder::NORMAL );      break;
    case ID_BUTTON_DFS:
      g_pathFinder->CreatePathDFS();
      currentSearchButton = ID_BUTTON_DFS;    break;
    case ID_BUTTON_BFS:
      g_pathFinder->CreatePathBFS();
      currentSearchButton = ID_BUTTON_BFS;    break;
    case ID_BUTTON_DIJKSTRA:
      g_pathFinder->CreatePathDijkstra();
      currentSearchButton = ID_BUTTON_DIJKSTRA; break;
    case ID_BUTTON_ASTAR:
      g_pathFinder->CreatePathAStar();
      currentSearchButton = ID_BUTTON_ASTAR;  break;

    case ID_MENU_LOAD:
      FileOpenDlg( hwnd, filename, titlename, "PathFinder Files (*.map)", "map" );
      if(strlen(titlename) > 0)
		  g_pathFinder->Load(titlename);

      SendMessage( g_hwndToolbar, TB_CHECKBUTTON, (WPARAM)currentSearchButton, (LPARAM)false );
      break;

    case ID_MENU_SAVEAS:
      FileSaveDlg( hwnd, filename, titlename, "PathFinder Files (*.map)", "map" );
      if(strlen(titlename) > 0)
		  g_pathFinder->Save(titlename);
      break;

    case ID_MENU_NEW:
      g_pathFinder->CreateGraph( NUMCELLSX, NUMCELLSY );
      SendMessage( g_hwndToolbar, TB_CHECKBUTTON, (WPARAM)currentSearchButton, (LPARAM)false );
      break;

    case IDM_VIEW_GRAPH:
      if(GetMenuState(GetMenu(hwnd), IDM_VIEW_GRAPH, MFS_CHECKED) && MF_CHECKED){
	ChangeMenuState( hwnd, IDM_VIEW_GRAPH, MFS_UNCHECKED );
	g_pathFinder->SwitchGraphOff();
      }
      else{
	ChangeMenuState( hwnd, IDM_VIEW_GRAPH, MFS_CHECKED );
	g_pathFinder->SwitchGraphOn();
      }
      break;

    case IDM_VIEW_TILES:
      if(GetMenuState(GetMenu(hwnd), IDM_VIEW_TILES, MFS_CHECKED) && MF_CHECKED){
	ChangeMenuState( hwnd, IDM_VIEW_TILES, MFS_UNCHECKED );
	g_pathFinder->SwitchTilesOff();
      }
      else{
	ChangeMenuState( hwnd, IDM_VIEW_TILES, MFS_CHECKED );
	g_pathFinder->SwitchTilesOn();
      }
      break;
    } // switch

    RedrawWindowRect( hwnd, false, rectClientWindow );
  }

  case WM_PAINT:{

    PAINTSTRUCT ps;

    BeginPaint(hwnd, &ps);

    BitBlt( hdcBackBuffer, 0, 0, cxClient, cyClient, NULL, NULL, NULL, WHITENESS );

    wpgdi->StartDrawing(hdcBackBuffer);

    g_pathFinder->Render();

    wpgdi->StopDrawing(hdcBackBuffer);

    BitBlt( ps.hdc, 0, 0, cxClient, cyClient, hdcBackBuffer, 0, 0, SRCCOPY );

    EndPaint(hwnd, &ps);
  }
    break;

  case WM_SIZE:{
    cxClient = LOWORD(lParam);
    cyClient = HIWORD(lParam);

    SelectObject(hdcBackBuffer, hOldBitmap);

    DeleteObject(hBitmap);

    HDC hdc = GetDC(hwnd);

    hBitmap = CreateCompatibleBitmap( hdc,
				      rectClientWindow.right,
				      rectClientWindow.bottom );

    ReleaseDC(hwnd, hdc);
    SelectObject(hdcBackBuffer, hBitmap);
  }
    break;

  case WM_DESTROY:{
    SelectObject(hdcBackBuffer, hOldBitmap);

    DeleteDC(hdcBackBuffer);
    DeleteObject(hBitmap);
    DeleteObject(hOldBitmap);

    PostQuitMessage(0);
  }
    break;
  } // end switch

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