فهرست منبع

Sizer alignement settings, made IDE console bottom-aligned

Ivan Safrin 13 سال پیش
والد
کامیت
507b12fb8e

+ 2 - 2
IDE/Contents/Source/PolycodeFrame.cpp

@@ -58,7 +58,7 @@ PolycodeFrame::PolycodeFrame() : ScreenEntity() {
 	welcomeEntity->addChild(newProjectButton);
 	welcomeEntity->addChild(examplesButton);
 	
-	mainSizer = new UIHSizer(100,100,200);
+	mainSizer = new UIHSizer(100,100,200,true);
 	mainSizer->setPosition(0, 45);
 	addChild(mainSizer);
 	
@@ -66,7 +66,7 @@ PolycodeFrame::PolycodeFrame() : ScreenEntity() {
 	projectBrowser = new PolycodeProjectBrowser();
 	mainSizer->addLeftChild(projectBrowser);
 
-	consoleSizer = new UIVSizer(100,100,400);
+	consoleSizer = new UIVSizer(100,100,200, false);
 	mainSizer->addRightChild(consoleSizer);	
 
 	editorHolder = new EditorHolder();

+ 1 - 1
IDE/Contents/Source/PolycodeIDEApp.cpp

@@ -26,7 +26,7 @@
 using namespace Polycode;
 
 PolycodeIDEApp::PolycodeIDEApp(PolycodeView *view) : EventDispatcher() {
-	core = new CocoaCore(view, 800,600,false,false, 0, 0,60);	
+	core = new CocoaCore(view, 800,600,false,true, 0, 0,60);	
 	core->addEventListener(this, Core::EVENT_CORE_RESIZE);	
 	CoreServices::getInstance()->getRenderer()->setClearColor(0.2,0.2,0.2);
 	

+ 6 - 4
Modules/Contents/UI/Include/PolyUIHSizer.h

@@ -31,12 +31,12 @@ namespace Polycode {
 	
 	class _PolyExport UIHSizer : public UIElement {
 		public:
-			UIHSizer(Number width, Number height, Number leftWidth);
+			UIHSizer(Number width, Number height, Number mainWidth, bool leftSizer);
 			~UIHSizer();
 			
 			void handleEvent(Event *event);
 			
-			void setLeftWidth(Number width);
+			void setMainWidth(Number width);
 			
 			void addLeftChild(UIElement *element);
 			void addRightChild(UIElement *element);			
@@ -47,13 +47,15 @@ namespace Polycode {
 		protected:
 		
 			ScreenEntity *childElements;			
-			Number leftWidth;
+			Number mainWidth;
 			
 			CoreInput *coreInput;
 			
 			bool resizing;
 			Number baseMouseX;
-			Number baseLeftWidth;
+			Number baseMainWidth;
+			
+			bool leftSizer;
 			
 			ScreenShape *separatorHitShape;
 			ScreenShape *separatorBgShape;

+ 6 - 4
Modules/Contents/UI/Include/PolyUIVSizer.h

@@ -31,12 +31,12 @@ namespace Polycode {
 	
 	class _PolyExport UIVSizer : public UIElement {
 		public:
-			UIVSizer(Number width, Number height, Number topHeight);
+			UIVSizer(Number width, Number height, Number mainHeight, bool topSizer);
 			~UIVSizer();
 			
 			void handleEvent(Event *event);
 			
-			void setTopHeight(Number height);
+			void setMainHeight(Number height);
 			
 			void addTopChild(UIElement *element);
 			void addBottomChild(UIElement *element);			
@@ -47,13 +47,15 @@ namespace Polycode {
 		protected:
 		
 			ScreenEntity *childElements;			
-			Number topHeight;
+			Number mainHeight;
+			
+			bool topSizer;
 			
 			CoreInput *coreInput;
 			
 			bool resizing;
 			Number baseMouseY;
-			Number baseTopHeight;
+			Number baseMainHeight;
 			
 			ScreenShape *separatorHitShape;
 			ScreenShape *separatorBgShape;

+ 41 - 19
Modules/Contents/UI/Source/PolyUIHSizer.cpp

@@ -29,12 +29,12 @@
 
 using namespace Polycode;
 
-UIHSizer::UIHSizer(Number width, Number height, Number leftWidth) : UIElement() {
+UIHSizer::UIHSizer(Number width, Number height, Number mainWidth, bool leftSizer) : UIElement() {
 
 	this->width = width;
 	this->height = height;
-	
-	this->leftWidth = leftWidth;
+	this->leftSizer = leftSizer;
+	this->mainWidth = mainWidth;
 	
 	separatorBgShape = new ScreenShape(ScreenShape::SHAPE_RECT, 1,height);
 	separatorBgShape->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
@@ -80,7 +80,7 @@ void UIHSizer::handleEvent(Event *event) {
 		switch (event->getEventCode()) {
 			case InputEvent::EVENT_MOUSEDOWN:
 				resizing = true;
-				baseLeftWidth = leftWidth;
+				baseMainWidth = mainWidth;
 			break;
 			case InputEvent::EVENT_MOUSEUP:
 			case InputEvent::EVENT_MOUSEUP_OUTSIDE:	
@@ -102,7 +102,11 @@ void UIHSizer::handleEvent(Event *event) {
 		switch (event->getEventCode()) {
 			case InputEvent::EVENT_MOUSEMOVE:
 				if(resizing == true) {
-					setLeftWidth(baseLeftWidth + (inputEvent->mousePosition.x-baseMouseX));
+					if(leftSizer) {
+						setMainWidth(baseMainWidth + (inputEvent->mousePosition.x-baseMouseX));
+					} else {
+						setMainWidth(baseMainWidth - (inputEvent->mousePosition.x-baseMouseX));
+					}
 				} else {
 					baseMouseX = inputEvent->mousePosition.x;				
 				}
@@ -118,8 +122,8 @@ void UIHSizer::Resize(Number width, Number height) {
 	updateSizer();
 }
 
-void UIHSizer::setLeftWidth(Number width) {
-	leftWidth = width;
+void UIHSizer::setMainWidth(Number width) {
+	mainWidth = width;
 	updateSizer();
 }
 			
@@ -136,20 +140,38 @@ void UIHSizer::addRightChild(UIElement *element) {
 }
 
 void UIHSizer::updateSizer() {
-	if(firstElement) {
-		firstElement->setPosition(0,0);
-		firstElement->Resize(leftWidth, height);
-	}
+
+	if(leftSizer) {
 	
-	if(secondElement) {
-		secondElement->setPosition(leftWidth+1,0);
-		secondElement->Resize(width-leftWidth-1, height);	
-	}
+		if(firstElement) {
+			firstElement->setPosition(0,0);
+			firstElement->Resize(mainWidth, height);
+		}	
+		if(secondElement) {
+			secondElement->setPosition(mainWidth+1,0);
+			secondElement->Resize(width-mainWidth-1, height);	
+		}
 
-	separatorBgShape->setShapeSize(1, height);
-	separatorBgShape->setPosition(leftWidth,0);
+		separatorBgShape->setShapeSize(1, height);
+		separatorBgShape->setPosition(mainWidth,0);
+		separatorHitShape->setShapeSize(6, height);
+		separatorHitShape->setPosition(mainWidth-3,0);
+		
+	} else {
+	
+		if(firstElement) {
+			firstElement->setPosition(0,0);
+			firstElement->Resize(width-mainWidth, height);
+		}	
+		if(secondElement) {
+			secondElement->setPosition(width-mainWidth+1,0);
+			secondElement->Resize(mainWidth-1, height);	
+		}
 
+		separatorBgShape->setShapeSize(1, height);
+		separatorBgShape->setPosition(width-mainWidth,0);
+		separatorHitShape->setShapeSize(6, height);
+		separatorHitShape->setPosition(width-mainWidth-3,0);
 	
-	separatorHitShape->setShapeSize(6, height);
-	separatorHitShape->setPosition(leftWidth-3,0);
+	}
 }

+ 43 - 19
Modules/Contents/UI/Source/PolyUIVSizer.cpp

@@ -29,12 +29,12 @@
 
 using namespace Polycode;
 
-UIVSizer::UIVSizer(Number width, Number height, Number topHeight) : UIElement() {
+UIVSizer::UIVSizer(Number width, Number height, Number mainHeight, bool topSizer) : UIElement() {
 
 	this->width = width;
 	this->height = height;
-	
-	this->topHeight = topHeight;
+	this->topSizer = topSizer;
+	this->mainHeight = mainHeight;
 	
 	separatorBgShape = new ScreenShape(ScreenShape::SHAPE_RECT, width,1);
 	separatorBgShape->setPositionMode(ScreenEntity::POSITION_TOPLEFT);
@@ -80,7 +80,7 @@ void UIVSizer::handleEvent(Event *event) {
 		switch (event->getEventCode()) {
 			case InputEvent::EVENT_MOUSEDOWN:
 				resizing = true;
-				baseTopHeight = topHeight;
+				baseMainHeight = mainHeight;
 			break;
 			case InputEvent::EVENT_MOUSEUP:
 			case InputEvent::EVENT_MOUSEUP_OUTSIDE:	
@@ -102,7 +102,11 @@ void UIVSizer::handleEvent(Event *event) {
 		switch (event->getEventCode()) {
 			case InputEvent::EVENT_MOUSEMOVE:
 				if(resizing == true) {
-					setTopHeight(baseTopHeight + (inputEvent->mousePosition.y-baseMouseY));
+					if(topSizer) {
+						setMainHeight(baseMainHeight + (inputEvent->mousePosition.y-baseMouseY));
+					} else {
+						setMainHeight(baseMainHeight - (inputEvent->mousePosition.y-baseMouseY));		
+					}
 				} else {
 					baseMouseY = inputEvent->mousePosition.y;
 				}
@@ -118,8 +122,8 @@ void UIVSizer::Resize(Number width, Number height) {
 	updateSizer();
 }
 
-void UIVSizer::setTopHeight(Number height) {
-	topHeight = height;
+void UIVSizer::setMainHeight(Number height) {
+	mainHeight = height;
 	updateSizer();
 }
 			
@@ -136,20 +140,40 @@ void UIVSizer::addBottomChild(UIElement *element) {
 }
 
 void UIVSizer::updateSizer() {
-	if(firstElement) {
-		firstElement->setPosition(0,0);
-		firstElement->Resize(width, topHeight);
-	}
+
+	if(topSizer) {
 	
-	if(secondElement) {
-		secondElement->setPosition(0,topHeight+1);
-		secondElement->Resize(width, height-topHeight-1);	
-	}
+		if(firstElement) {
+			firstElement->setPosition(0,0);
+			firstElement->Resize(width, mainHeight);
+		}
+	
+		if(secondElement) {
+			secondElement->setPosition(0,mainHeight+1);
+			secondElement->Resize(width, height-mainHeight-1);	
+		}
 
-	separatorBgShape->setShapeSize(width, 1);
-	separatorBgShape->setPosition(0,topHeight);
+		separatorBgShape->setShapeSize(width, 1);
+		separatorBgShape->setPosition(0,mainHeight);
+		separatorHitShape->setShapeSize(width, 6);
+		separatorHitShape->setPosition(0, mainHeight-3);
+		
+	} else {
 
+		if(firstElement) {
+			firstElement->setPosition(0,0);
+			firstElement->Resize(width, height-mainHeight);
+		}
 	
-	separatorHitShape->setShapeSize(width, 6);
-	separatorHitShape->setPosition(0, topHeight-3);
+		if(secondElement) {
+			secondElement->setPosition(0,height-mainHeight+1);
+			secondElement->Resize(width, mainHeight-1);	
+		}
+
+		separatorBgShape->setShapeSize(width, 1);
+		separatorBgShape->setPosition(0,height-mainHeight);
+		separatorHitShape->setShapeSize(width, 6);
+		separatorHitShape->setPosition(0, height-mainHeight-3);
+
+	}
 }