ui fixes
This commit is contained in:
		
							parent
							
								
									2e82ca6791
								
							
						
					
					
						commit
						720dcbb381
					
				
					 3 changed files with 69 additions and 71 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								DumBer
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DumBer
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										139
									
								
								MainWindow.cpp
									
										
									
									
									
								
							
							
						
						
									
										139
									
								
								MainWindow.cpp
									
										
									
									
									
								
							|  | @ -3,7 +3,6 @@ | |||
|  * All rights reserved. Distributed under the terms of the MIT license. | ||||
|  */ | ||||
| 
 | ||||
| 
 | ||||
| #include "MainWindow.h" | ||||
| 
 | ||||
| #include <Url.h> | ||||
|  | @ -14,7 +13,8 @@ | |||
| #include <LayoutBuilder.h> | ||||
| #include <Menu.h> | ||||
| #include <MenuBar.h> | ||||
| #include <StringView.h>   | ||||
| #include <ScrollView.h> | ||||
| #include <StringView.h> | ||||
| 
 | ||||
| #include <View.h> | ||||
| 
 | ||||
|  | @ -38,37 +38,32 @@ MainWindow::MainWindow() | |||
|     : BWindow(BRect(100, 100, 600, 400), B_TRANSLATE("BeDumb"), B_TITLED_WINDOW, | ||||
|               B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE) { | ||||
| 
 | ||||
| 
 | ||||
|   BMenuBar *menuBar = _BuildMenu(); | ||||
| 
 | ||||
|   BLayoutBuilder::Group<>(this, B_VERTICAL, 0).Add(menuBar).AddGlue().End(); | ||||
| 
 | ||||
|   _inputField = | ||||
|       new BTextControl("", "What is the matrix ?", new BMessage(kQuestionChanged)); | ||||
| 	   | ||||
|   _inputField = new BTextControl("", "What is the matrix ?", | ||||
|                                  new BMessage(kQuestionChanged)); | ||||
| 
 | ||||
|   _progress = new BStatusBar("prog"); | ||||
|   _progress->SetMaxValue(100); | ||||
|   _progress->SetTo(0); | ||||
|   _progress->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); | ||||
|    | ||||
| 
 | ||||
|   _answerView = new BTextView("answer"); | ||||
| 
 | ||||
| 	BStringView* header = new BStringView("biglabel", "Let's Be Dumber!"); | ||||
| 	BFont font; | ||||
| 	header->GetFont(&font); | ||||
| 	font.SetSize(20);  | ||||
| 	header->SetFont(&font); | ||||
|   BStringView *header = new BStringView("biglabel", "Let's Be Dumber!"); | ||||
|   BFont font; | ||||
|   header->GetFont(&font); | ||||
|   font.SetSize(20); | ||||
|   header->SetFont(&font); | ||||
| 
 | ||||
|   // Info view, only one line high
 | ||||
|   _infoView = new BTextView("info"); | ||||
|   _infoView->SetText("...");  | ||||
|   _infoView->SetText("..."); | ||||
|   _infoView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); | ||||
|   _infoView->MakeEditable(false); | ||||
|   _infoView->MakeSelectable(false); | ||||
|   _infoView->SetWordWrap(false); | ||||
|    | ||||
| 
 | ||||
|   float lineHeight = _infoView->LineHeight(0); | ||||
|   _infoView->SetExplicitMinSize(BSize(B_SIZE_UNSET, lineHeight)); | ||||
|   _infoView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, lineHeight)); | ||||
|  | @ -81,9 +76,20 @@ MainWindow::MainWindow() | |||
|       new BButton("send", B_TRANSLATE("Send"), new BMessage(kSendPrompt), | ||||
|                   B_WILL_DRAW | B_NAVIGABLE); | ||||
| 
 | ||||
|   _answerView = new BTextView("answer", B_WILL_DRAW | B_FOLLOW_ALL); | ||||
|   _answerView->MakeEditable(false);  // Disable editing
 | ||||
|   _answerView->MakeSelectable(true); // Enable text selection
 | ||||
| 
 | ||||
|   //_answerView->SetWordWrap(true);
 | ||||
|   BScrollView *scrollView = | ||||
|       new BScrollView("scroll_view", _answerView, 0, 0, false, | ||||
|                       true); // horizontal and vertical scrollbars
 | ||||
| 
 | ||||
|   BLayoutBuilder::Group<>(this, B_VERTICAL, 0) | ||||
| 
 | ||||
|       .Add(header)      | ||||
|       .AddGlue(0.1) | ||||
|       .Add(header) | ||||
|       .AddGlue(0.1) | ||||
| 
 | ||||
|       .AddGroup(B_HORIZONTAL, 0, 1) | ||||
|       .Add(_inputField) | ||||
|  | @ -92,9 +98,10 @@ MainWindow::MainWindow() | |||
|       .End() | ||||
|       .End() | ||||
| 
 | ||||
|       .AddGlue(0.1) | ||||
|       .Add(scrollView) | ||||
|       .Add(_progress) | ||||
|       .Add(_infoView) | ||||
|       .Add(_answerView) | ||||
| 
 | ||||
|       .SetInsets(5, 5, 5, 5) | ||||
| 
 | ||||
|  | @ -106,7 +113,7 @@ MainWindow::~MainWindow() {} | |||
| void MainWindow::MessageReceived(BMessage *message) { | ||||
| 
 | ||||
|   switch (message->what) { | ||||
|    | ||||
| 
 | ||||
|     //  case kMsgNewFile: {
 | ||||
|     //    fSaveMenuItem->SetEnabled(false);
 | ||||
|     //    printf("New\n");
 | ||||
|  | @ -123,9 +130,9 @@ void MainWindow::MessageReceived(BMessage *message) { | |||
| 
 | ||||
|   case kQuestionChanged: { | ||||
|     printf("Question Changed\n"); | ||||
|     _progress->SetTo(2);  | ||||
|     _progress->SetTo(2); | ||||
| 
 | ||||
| //    sendQuery();
 | ||||
|     //    sendQuery();
 | ||||
| 
 | ||||
|   } break; | ||||
| 
 | ||||
|  | @ -138,8 +145,8 @@ void MainWindow::MessageReceived(BMessage *message) { | |||
| 
 | ||||
|   case UrlEvent::HostNameResolved: { | ||||
|     printf("Host name resolved\n"); | ||||
| 	 auto name = message->GetString(UrlEventData::HostName); | ||||
|      message->PrintToStream(); | ||||
|     auto name = message->GetString(UrlEventData::HostName); | ||||
|     message->PrintToStream(); | ||||
| 
 | ||||
|     _infoView->SetText("Hostname resolve..."); | ||||
|     _infoView->SetText(name); | ||||
|  | @ -158,34 +165,31 @@ void MainWindow::MessageReceived(BMessage *message) { | |||
|     _progress->SetTo(14); | ||||
|     _infoView->SetText("ResponseStarted..."); | ||||
|   } break; | ||||
|    | ||||
| 
 | ||||
|   case UrlEvent::HttpRedirect: { | ||||
|     printf("HttpRedirect\n"); | ||||
|     _progress->SetTo(16); | ||||
|     _infoView->SetText("HttpRedirect..."); | ||||
|   } break; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   case UrlEvent::RequestCompleted: { | ||||
| 			printf("RequestCompleted\n"); | ||||
| 			auto identifier = message->GetInt32(UrlEventData::Id, -1); | ||||
| 			if (_lastResult->Identity() == identifier) { | ||||
| 				// The following call will not block, because we have been notified
 | ||||
| 				// that the request is done.
 | ||||
| 				BHttpBody body = _lastResult->Body(); | ||||
| 				if (body.text.has_value()) | ||||
| 				_answerView->SetText(body.text.value()); | ||||
| 				else | ||||
| 				_answerView->SetText("nuthin'"); | ||||
|           } | ||||
| 		 | ||||
| 			_infoView->SetText("Completed"); | ||||
| 			_progress->SetMaxValue(100); | ||||
| 			_progress->SetTo(100); | ||||
|     printf("RequestCompleted\n"); | ||||
|     auto identifier = message->GetInt32(UrlEventData::Id, -1); | ||||
|     if (_lastResult->Identity() == identifier) { | ||||
|       // The following call will not block, because we have been notified
 | ||||
|       // that the request is done.
 | ||||
|       BHttpBody body = _lastResult->Body(); | ||||
|       if (body.text.has_value()) | ||||
|         _answerView->SetText(body.text.value()); | ||||
|       else | ||||
|         _answerView->SetText("nuthin'"); | ||||
|     } | ||||
| 
 | ||||
| 	} break; | ||||
|     _infoView->SetText("Completed"); | ||||
|     _progress->SetMaxValue(100); | ||||
|     _progress->SetTo(100); | ||||
| 
 | ||||
|   } break; | ||||
| 
 | ||||
|   case UrlEvent::HttpStatus: { | ||||
| 
 | ||||
|  | @ -199,49 +203,45 @@ void MainWindow::MessageReceived(BMessage *message) { | |||
|     _infoView->SetText("Some bytes written.."); | ||||
|     auto identifier = message->GetInt32(UrlEventData::Id, -1); | ||||
|     if (_lastResult->Identity() == identifier) { | ||||
| 		off_t numBytes = message->GetInt64(UrlEventData::NumBytes, 0); | ||||
| 		off_t totalBytes = message->GetInt64(UrlEventData::TotalBytes, 0); | ||||
| 		_progress->SetTo(numBytes); | ||||
| 		_progress->SetMaxValue(totalBytes); | ||||
|       off_t numBytes = message->GetInt64(UrlEventData::NumBytes, 0); | ||||
|       off_t totalBytes = message->GetInt64(UrlEventData::TotalBytes, 0); | ||||
|       _progress->SetTo(numBytes); | ||||
|       _progress->SetMaxValue(totalBytes); | ||||
|     } | ||||
|   } break; | ||||
| 
 | ||||
|   case UrlEvent::DownloadProgress: { | ||||
|     auto identifier = message->GetInt32(UrlEventData::Id, -1); | ||||
|     if (_lastResult->Identity() == identifier) { | ||||
| 		off_t nn = message->GetInt64(UrlEventData::NumBytes, 0); | ||||
| 		off_t totalBytes = message->GetInt64(UrlEventData::TotalBytes, 0); | ||||
| 		_progress->SetTo(nn); | ||||
| 		_progress->SetMaxValue(totalBytes); | ||||
| 		_infoView->SetText("Download Progress.."); | ||||
|       off_t nn = message->GetInt64(UrlEventData::NumBytes, 0); | ||||
|       off_t totalBytes = message->GetInt64(UrlEventData::TotalBytes, 0); | ||||
|       _progress->SetTo(nn); | ||||
|       _progress->SetMaxValue(totalBytes); | ||||
|       _infoView->SetText("Download Progress.."); | ||||
|     } | ||||
|   } break; | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|   default: { | ||||
|     //message->PrintToStream();
 | ||||
|      BWindow::MessageReceived(message); // call the parent handler for other messages
 | ||||
|     // message->PrintToStream();
 | ||||
|     BWindow::MessageReceived( | ||||
|         message); // call the parent handler for other messages
 | ||||
|     //	  _infoView->SetText(message->FindMessage());
 | ||||
|     break; | ||||
|   } | ||||
|    | ||||
| 
 | ||||
| }//end switch
 | ||||
| 
 | ||||
| } //end function
 | ||||
| 
 | ||||
|   } // end switch
 | ||||
| 
 | ||||
| } // end function
 | ||||
| 
 | ||||
| void MainWindow::sendQuery() { | ||||
|   | ||||
| 
 | ||||
|   if (_lastResult) | ||||
|     _sharedSession.Cancel(_lastResult->Identity()); | ||||
|   | ||||
| 
 | ||||
|   _progress->SetMaxValue(100); | ||||
|   _progress->SetTo(0); | ||||
| 
 | ||||
|   auto url = BUrl("https://www.link-u.com/ip/"); | ||||
|   auto url = BUrl("https://www.lema.org/"); | ||||
|   BHttpRequest request = BHttpRequest(url); | ||||
| 
 | ||||
|   printf("Sending Prompt to server: %s\n", url.UrlString().String()); | ||||
|  | @ -250,17 +250,14 @@ void MainWindow::sendQuery() { | |||
|   if (_lastResult) { | ||||
|     printf("Result has identity: %d\n", _lastResult->Identity()); | ||||
|   } | ||||
|    | ||||
|   | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| BMenuBar *MainWindow::_BuildMenu() { | ||||
| 
 | ||||
|   BMenuBar *menuBar = new BMenuBar("menubar"); | ||||
|   BMenu *menu;  | ||||
|   BMenu *menu; | ||||
|   BMenuItem *item; | ||||
|   | ||||
| 
 | ||||
|   // menu 'File'
 | ||||
|   menu = new BMenu(B_TRANSLATE("File")); | ||||
| 
 | ||||
|  | @ -277,17 +274,17 @@ BMenuBar *MainWindow::_BuildMenu() { | |||
|   // menu->AddItem(fSaveMenuItem);
 | ||||
| 
 | ||||
|   //  menu->AddSeparatorItem();
 | ||||
|   | ||||
| 
 | ||||
|   item = new BMenuItem(B_TRANSLATE("About" B_UTF8_ELLIPSIS), | ||||
|                        new BMessage(B_ABOUT_REQUESTED)); | ||||
|   item->SetTarget(be_app); | ||||
|   menu->AddItem(item); | ||||
| 
 | ||||
|   item = new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q'); | ||||
|   item = | ||||
|       new BMenuItem(B_TRANSLATE("Quit"), new BMessage(B_QUIT_REQUESTED), 'Q'); | ||||
|   menu->AddItem(item); | ||||
| 
 | ||||
|   menuBar->AddItem(menu); | ||||
| 
 | ||||
|   return menuBar; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -55,6 +55,7 @@ private: | |||
|   BTextView * _infoView; | ||||
|   BTextControl* _inputField; | ||||
|   BStatusBar* _progress; | ||||
|   | ||||
|   BMenuItem *fSaveMenuItem; | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue