Exemplo n.º 1
0
LRESULT CALLBACK HWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch(msg)
	{
		//case WM_ACTIVE:
		//break;
		case WM_KEYDOWN:
		case WM_KEYUP:
			CallWindowProc((WNDPROC)GetWindowLong(hGLWnd, GWL_WNDPROC), hGLWnd, msg, wParam, lParam);
			return TRUE;//オリジナルのメッセージ処理を行わないとLayouterWindow.cppが機能しない
		case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
				case ID_FILE_NEW_LAYOUT:
				{
					//long nUndoBuffer = GetUndoBufferNum();
					//if(dwLastSaveTime){
					//	if(MBQ("This document has been modified. Save?")){
					//		CallWindowProc((WNDPROC)GetWindowLong(hWnd, GWL_WNDPROC), hWnd, WM_COMMAND, ID_FILE_SAVE_OW, 0);
					//	}
					//}
					FreeAll();
					RefreshAllView();
					break;
				}
				case ID_FILE_OPEN_LAYOUT:
				{
					char* szFile = (char*)GlobalAlloc(GPTR, sizeof(char) * 1024);
						if(GetOpenFileNameSingle(hGLWnd, "kdf", szFile, FALSE))
						{
							lstrcpy(g_szFileName, szFile);
							FreeAll();
							demo.Load(szFile);
							RefreshAllView();
						}
					GlobalFree(szFile);
					break;
				}
				case ID_FILE_SAVE_OW:
				{
					if(g_szFileName[0] == '\0')
					{
						char* szFile = (char*)GlobalAlloc(GPTR, sizeof(char) * 1024);
							if(GetSaveFileNameSingle(hGLWnd, "kdf", szFile, FALSE))
							{
								lstrcpy(g_szFileName, szFile);
							}else return TRUE;
						GlobalFree(szFile);
					}
					
					demo.Save(g_szFileName);
					RefreshAllView();
					break;
				}
				case ID_FILE_SAVE_AS:
				{
					char* szFile = (char*)GlobalAlloc(GPTR, sizeof(char) * 1024);
						if(GetSaveFileNameSingle(hGLWnd, "kdf", szFile, FALSE))
						{
							lstrcpy(g_szFileName, szFile);
							demo.Save(szFile);
							RefreshAllView();
						}
					GlobalFree(szFile);
					break;
				}
				case ID_FILE_EXPORT:
				{
					char* szFile = (char*)GlobalAlloc(GPTR, sizeof(char) * 1024);
						if(GetSaveFileNameSingle(hGLWnd, "kdb", szFile, FALSE))
						{
							//lstrcpy(g_szFileName, szFile);
							demo.BinarySave(szFile);
							MessageBox(hWnd, "Export done", "", MB_ICONINFORMATION|MB_OK|MB_TOPMOST);
							RefreshAllView();
						}
					GlobalFree(szFile);
					break;
				}
				case ID_FILE_EXIT:
				{
					VerifyOnExit();	
					break;
				}
				case ID_EDIT_UNDO:
				{
					Undo();	
					break;
				}
				case ID_EDIT_REDO:
				{
					Redo();	
					break;
				}
				case ID_MODE_LAYOUTER:
				{
					StopPlaying();

					nCurrentMode = LAYOUTER;
					HMENU hMenu = GetMenu(hWnd);
					HMENU hSub = GetSubMenu(hMenu, 2);
					CheckMenuItem(hSub, 1, MF_BYPOSITION|MF_UNCHECKED);
					CheckMenuItem(hSub, 0, MF_BYPOSITION|MF_CHECKED);

				
					//vSound.Hide();
					//vSynth.Hide();
					ShowWindow(vSound.GetHolderWnd(), FALSE);
					//ShowWindow(vTime.GetHolderWnd(), FALSE);
					ShowWindow(vSynth.GetHolderWnd(), FALSE);

					//ShowWindow(vScene.GetHolderWnd(), TRUE);
					ShowWindow(vClone.GetHolderWnd(), TRUE);
					ShowWindow(vObjectList.GetHolderWnd(), TRUE);
					ShowWindow(vSceneObjectList.GetHolderWnd(), TRUE);

					RefreshWindows();
					break;
				}
				case ID_MODE_TIMELINER:
				{
					StopPlaying();

					nCurrentMode = TIMELINER;
					HMENU hMenu = GetMenu(hWnd);
					HMENU hSub = GetSubMenu(hMenu, 2);
					CheckMenuItem(hSub, 0, MF_BYPOSITION|MF_UNCHECKED);
					CheckMenuItem(hSub, 1, MF_BYPOSITION|MF_CHECKED);

					//ShowWindow(vScene.GetHolderWnd(), FALSE;
					ShowWindow(vClone.GetHolderWnd(), FALSE);
					//ShowWindow(vSceneObjectList.GetHolderWnd(), FALSE);
					ShowWindow(vObjectList.GetHolderWnd(), FALSE);

					//vSound.Show();
					//vSynth.Show();
					ShowWindow(vSound.GetHolderWnd(), TRUE);
					//ShowWindow(vTime.GetHolderWnd(), TRUE);
					ShowWindow(vSynth.GetHolderWnd(), TRUE);

					RefreshWindows();
					break;
				}
				case ID_FRAME_000:
				case ID_FRAME_025:
				case ID_FRAME_050:
				case ID_FRAME_075:
				case ID_FRAME_100:
				{
					float mul = (LOWORD(wParam) - ID_FRAME_000) * 0.25f;
					UpdateFrameTransparency(mul);
					break;
				}
			}
			return FALSE;
		}
		case WM_DESTROY:
		case WM_CLOSE:
		{
			VerifyOnExit();
			return FALSE;
		}
		case WM_SIZE:
		{
			RefreshWindows();
			return FALSE;
		}
	}
	return TRUE;
}
Exemplo n.º 2
0
void SeqPrefWin::MessageReceived(BMessage* msg)
{
	switch (msg->what) {
		case OK_MSG:
			if (mOwqTable) mOwqTable->ReplacePreferences( mPreferences );
			seq_app->SetPreferences(&mPreferences);
			if (mUndoLevelCtrl) AmGlobals().SetUndoHistory(mUndoLevelCtrl->Value() );
			if (mRefreshWindows != 0) RefreshWindows();
			PostMessage(B_QUIT_REQUESTED);
			break;
		case CANCEL_MSG:
			PostMessage(B_QUIT_REQUESTED);
			break;
		case CHANGE_SKIN_MSG:
			{
				const char*		skin;
				if (msg->FindString("seq:skin", &skin) == B_OK) { 
					SetStringPref(CURRENT_SKIN_PREF, skin);
					new_skin_warning();
				}
			}
			break;
		case CHANGE_SKIN_TO_DEFAULT_MSG:
			{
				if( mPreferences.HasString(CURRENT_SKIN_PREF) ) mPreferences.RemoveData(CURRENT_SKIN_PREF);
				new_skin_warning();
			}
			break;
		case REMEMBER_OPEN_MSG:
			{
				BCheckBox*	cb = dynamic_cast<BCheckBox*>( FindView(REMEMBER_OPEN_STR) );
				if( cb ) SetBoolPref( REMEBER_OPEN_SONGS_PREF, cb->Value() );
			}
			break;
		case OPEN_BLANK_MSG:
			SetStringPref( OPEN_NEW_SONG_PREF, "blank" );
			break;
		case OPEN_FOUR_MSG:
			SetStringPref( OPEN_NEW_SONG_PREF, "channels" );
			SetInt32Pref( OPEN_NEW_SONG_CHANNEL_PREF, 2 );
			break;
		case OPEN_FILE_MSG:
			SetStringPref( OPEN_NEW_SONG_PREF, "file" );
			/* Open a file panel to select a new file.
			 */
			if (!mFilePanel ) mFilePanel = new BFilePanel(B_OPEN_PANEL, 0, 0, 0,
																false);
			if (mFilePanel->IsShowing() ) break;
			if (mFilePanel->Window() ) {
				mFilePanel->Window()->SetTitle("Select File" B_UTF8_ELLIPSIS);
			}
					
			mFilePanel->SetTarget(BMessenger(this));
			mFilePanel->SetMessage( new BMessage('nfen') );
			mFilePanel->Show();

			break;
		case 'nfen':
			{
				entry_ref	ref;
				if( msg->FindRef( "refs", &ref ) == B_OK ) {
					SetOpenNewFromFileRef( &ref );
				}
			}
			break;
		case CHANGE_UNDO_HISTORY_MSG:
			if (mUndoLevelCtrl) SetInt32Pref(UNDO_HISTORY_PREF, mUndoLevelCtrl->Value() );
			break;
		case TRACK_WIN_FOLLOW_MSG:
			if (mTrackWinFollowCtrl) SetBoolPref(TRACK_WIN_FOLLOW_PREF, mTrackWinFollowCtrl->Value() == B_CONTROL_ON);
			break;
		case TRACK_WIN_PLAY_TO_END_MSG:
			if (mTrackWinPlayToEndCtrl) SetBoolPref(TRACK_WIN_PLAY_TO_END_PREF, mTrackWinPlayToEndCtrl->Value() == B_CONTROL_ON);
			break;
		case TRACK_HEIGHT_MSG:
			if (mTrackHeightCtrl) SetInt32Pref(TRACK_HEIGHT_PREF, mTrackHeightCtrl->Value() );
			break;
		case LABEL_HEIGHT_MSG:
			if (mLabelHeightCtrl) {
				SetInt32Pref(PHRASE_LABEL_HEIGHT_PREF, mLabelHeightCtrl->Value() );
				mRefreshWindows |= SEQ_REFRESH_PHRASES;
			}
			break;
		case VIEW_ROW_SELECTED_MSG:
			FactoryRowSelected();
			break;
		default:
			inherited::MessageReceived(msg);
			break;
	}
}
Exemplo n.º 3
0
void Initialize(int width, int height)
{
	RECT rect;
	rect.right = width;
	rect.bottom = height;
	
	/* for Layouter*/
	float ratio[6][2] = { {0.2f, 0.5f}, {0.6f, 0.4f}, {0.2f, 0.5f},
						  {0.2f, 0.5f}, {0.6f, 0.6f}, {0.2f, 0.5f}};
	vSceneList.CreateListView(0, 0, rect.right*ratio[0][0], rect.bottom*ratio[0][1], "SceneList", hMainWnd);
	DWORD dwStyle = LVS_EX_GRIDLINES;
	ListView_SetExtendedListViewStyle(vSceneList.GetListWnd(), dwStyle);
	vSceneList.SetCallbackFunctions(SceneListNameEdit, SceneListPopup, SceneListCommand, SceneListKey, SceneListMouse, SceneListSelectedItemNotify);
	vSceneList.SetHookProcedure(SceneListHookProc);
	vSceneList.AddColumn("Scene", LVSCW_AUTOSIZE, 0);


	wingl.CCreateWindow(rect.right*ratio[0][0], 0, rect.right*ratio[1][0], rect.bottom*ratio[1][1], "OpenGL");
	wingl.CSetCallbackFunctions(LayouterKeyEvent, LayouterMouseEvent, OnDraw);//, OnIdle);
	SetParent(wingl.CGethWnd(), hMainWnd);

	vSceneObjectList.CreateListView(rect.right*ratio[0][0] + rect.right*ratio[1][0], 0, rect.right*ratio[2][0], rect.bottom*ratio[2][1], "SceneObjectList", hMainWnd);
	dwStyle = LVS_EX_GRIDLINES;
	//dwStyle = LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES;
	ListView_SetExtendedListViewStyle(vSceneObjectList.GetListWnd(), dwStyle);
	vSceneObjectList.SetCallbackFunctions(SceneObjectListNameEdit, SceneObjectListPopup, SceneObjectListCommand, SceneObjectListKey, SceneObjectListMouse, SceneObjectListSelectedItemNotify);
	vSceneObjectList.SetHookProcedure(SceneObjectListHookProc);
	vSceneObjectList.AddColumn("camera_trans", LVSCW_AUTOSIZE, 2);
	vSceneObjectList.AddColumn("interpolate", LVSCW_AUTOSIZE, 1);
	vSceneObjectList.AddColumn("Scene Object", LVSCW_AUTOSIZE, 0);


	vObjectList.CreateListView(0, rect.bottom*ratio[3][1], rect.right*ratio[3][0], rect.bottom*ratio[3][1], "ObjectList", hMainWnd);
	dwStyle = LVS_EX_GRIDLINES;
	ListView_SetExtendedListViewStyle(vObjectList.GetListWnd(), dwStyle);
	vObjectList.SetCallbackFunctions(ObjectListNameEdit, ObjectListPopup, ObjectListCommand, ObjectListKey, ObjectListMouse, ObjectListSelectedItemNotify);
	vObjectList.SetHookProcedure(ObjectListHookProc);
	vObjectList.AddColumn("Object", LVSCW_AUTOSIZE, 0);

	vTimeline.Create(hMainWnd, rect.right*ratio[3][0], rect.bottom*ratio[4][1], rect.right*ratio[4][0], rect.bottom*ratio[4][1], "Timeline");
	vTimeline.SetWndProcCallback(TimelineProc);


	vClone.CreateTreeView(rect.right*ratio[3][0]+rect.right*ratio[4][0], rect.bottom*ratio[5][1], rect.right*ratio[5][0], rect.bottom*ratio[5][1], "Clone", hMainWnd);
	vClone.SetCallbackFunctions(CloneNameEdit, NULL, NULL, CloneKey, CloneMouse, CloneSelectedItemNotify); 
	vClone.SetHookProcedure(CloneHookProc);

	LONG oldStyle = GetWindowLong(vClone.GetTreeWnd(), GWL_STYLE);
	oldStyle |= TVS_CHECKBOXES;
	SetWindowLong(vClone.GetTreeWnd(), GWL_STYLE, oldStyle);


	SceneObjectListOldWndProc = (WNDPROC)SetWindowLong(vSceneObjectList.GetListWnd(), GWL_WNDPROC, (LONG)SceneObjectListWndHookProc);
	ObjectListOldWndProc = (WNDPROC)SetWindowLong(vObjectList.GetListWnd(), GWL_WNDPROC, (LONG)ObjectListWndHookProc);
	SceneListOldWndProc = (WNDPROC)SetWindowLong(vSceneList.GetListWnd(), GWL_WNDPROC, (LONG)SceneListWndHookProc);
	CloneOldWndProc = (WNDPROC)SetWindowLong(vClone.GetTreeWnd(), GWL_WNDPROC, (LONG)CloneWndHookProc);

	/* for Timeliner*/
	vSound.CreateSoundWindow(rect.right*ratio[3][0]+rect.right*ratio[4][0], rect.bottom*ratio[5][1], rect.right*ratio[5][0], rect.bottom*ratio[5][1], "Sound", hMainWnd);
	SetParent(vSound.GetHolderWnd(), hMainWnd);

	vSynth.CreateSynthWindow(rect.right*ratio[0][0] + rect.right*ratio[1][0], 0, rect.right*ratio[2][0], rect.bottom*ratio[2][1], "Synth", hMainWnd);
	SetParent(vSynth.GetHolderWnd(), hMainWnd);
	//ksd.SetNotifyCallback(vSynth.KSynthLoadNotify);

	RefreshWindows();

	//const float lratio [2] = { 19.0f, 50.0f };
	//const float rratio[2] = { 19.0f, 50.0f };
	//const float cratio = { 100.0f - lratio[0] - rratio[0] };
	//float w[3], h[3];


	////左
	//w[0] = width /100.0*lratio[0];
	//h[0] = height/100.0*lratio[1];
	//vSceneList.CreateListView(0, 0, w[0], h[0], "SceneList", hMainWnd);
	//DWORD dwStyle = LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES;
	//ListView_SetExtendedListViewStyle(vSceneList.GetListWnd(), dwStyle);
	//vSceneList.SetCallbackFunctions(SceneListNameEdit, NULL, SceneListCommand, SceneListKey, SceneListMouse, SceneListSelectedItemNotify);
	//vSceneList.SetHookProcedure(SceneListHookProc);
	//vSceneList.AddColumn("Scene", w[0], 0);
	//ChangeWindowStyle(vSceneList.GetHolderWnd(), WS_POPUP|WS_VISIBLE);

	//vObjectList.CreateListView(0, h[0], w[0], h[0], "ObjectList", hMainWnd);
	//dwStyle = LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES;
	//ListView_SetExtendedListViewStyle(vObjectList.GetListWnd(), dwStyle);
	//vObjectList.SetCallbackFunctions(ObjectListNameEdit, ObjectListPopup, ObjectListCommand, ObjectListKey, ObjectListMouse, ObjectListSelectedItemNotify);
	//vObjectList.SetHookProcedure(ObjectListHookProc);
	//vObjectList.AddColumn("Object", w[0], 0);
	//ChangeWindowStyle(vObjectList.GetHolderWnd(), WS_POPUP|WS_VISIBLE);

	////真ん中
	//w[1] = width /100.0 * 60.0;
	//h[1] = height/100.0 * 60.0;
	//wingl.CCreateWindow(w[0]+(width/100.0*1.0f), 0, w[1], h[1], "OpenGL");
	//wingl.CSetCallbackFunctions(LayouterKeyEvent, LayouterMouseEvent, OnDraw);
	//SetParent(wingl.CGethWnd(), hMainWnd);
	//ChangeWindowStyle(wingl.CGethWnd(), WS_POPUP|WS_VISIBLE);

	//vTimeline.Create(hMainWnd, w[0]+(width/100.0*1.0f), h[1]+(height/100.0f*5.0f), w[1], height/100.0*35.0f-50, "Timeline");
	//vTimeline.SetWndProcCallback(TimelineProc);

	////右
	//w[2] = width/100.0*rratio[0];
	//h[2] = height/100.0*rratio[1];
	//vSceneObjectList.CreateListView(w[0]+(width/100.0*cratio), 0, w[2], h[2], "SceneObjectList", hMainWnd);
	//dwStyle = LVS_EX_CHECKBOXES | LVS_EX_GRIDLINES;
	//ListView_SetExtendedListViewStyle(vSceneObjectList.GetListWnd(), dwStyle);
	//vSceneObjectList.SetCallbackFunctions(SceneObjectListNameEdit, NULL, SceneObjectListCommand, SceneObjectListKey, SceneObjectListMouse, SceneObjectListSelectedItemNotify);
	//vSceneObjectList.SetHookProcedure(SceneObjectListHookProc);
	//vSceneObjectList.AddColumn("Scene Object", w[2], 0);
	//ChangeWindowStyle(vSceneObjectList.GetHolderWnd(), WS_POPUP|WS_VISIBLE);

	//vClone.CreateTreeView(w[0]+(width/100.0*cratio), h[2], w[2], h[2], "Clone", hMainWnd);
	//vClone.SetCallbackFunctions(CloneNameEdit, NULL, NULL, CloneKey, CloneMouse, CloneSelectedItemNotify); 
	//vClone.SetHookProcedure(CloneHookProc);
	//LONG oldStyle = GetWindowLong(vClone.GetTreeWnd(), GWL_STYLE);
	//oldStyle |= TVS_CHECKBOXES;
	//SetWindowLong(vClone.GetTreeWnd(), GWL_STYLE, oldStyle);
	//ChangeWindowStyle(vClone.GetHolderWnd(), WS_POPUP|WS_VISIBLE);


	//HMENU hMenu = GetMenu(hMainWnd);
	//HMENU hSub  = GetSubMenu(hMenu, 1);
	//EnableMenuItem(hSub, 0, MF_BYPOSITION|MF_GRAYED);
	//EnableMenuItem(hSub, 1, MF_BYPOSITION|MF_GRAYED);
}