Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated the Vandelay application. #1

Merged
merged 10 commits into from Mar 19, 2017

Updated to use layout API and minor GUI work

  • Loading branch information
AkshayAgarwal007 committed Mar 15, 2017
commit 43740024b271c19a418e0b7ac09df8cf13888064
@@ -35,4 +35,4 @@ const uint32 CONVERT_TO_FAHRENHEIT = 'CTfh';
const uint32 CONVERT_TO_GALLONUS = 'CTgl';
const uint32 CONVERT_TO_LITRE = 'CTlr';
const uint32 CONVERT_TO_KILOGRAM = 'CTkg';
const uint32 CONVERT_TO_POUND = 'CTpd';
const uint32 CONVERT_TO_POUND = 'CTpd';
@@ -1,26 +1,45 @@
#include "VandelayWindow.h"

#include "Vandelay.h"

const char * kSignature = "application/x-vnd.Blum-Vandelay";

int main(int, char**)
{
VandelayApp VanApp;

VanApp.Run();

return(0);
VandelayApp::VandelayApp() : BApplication(kSignature) {


This comment has been minimized.

Copy link
@waddlesplash

waddlesplash Mar 18, 2017

Member

Extra and unnecessary spaces at beginning of function. Also please conform to Haiku coding style (https://www.haiku-os.org/development/coding-guidelines/) as much as possible re. function formatting.

This comment has been minimized.

Copy link
@AkshayAgarwal007

AkshayAgarwal007 Mar 18, 2017

Author Contributor

I should have updated it to conform to the coding style straight away instead of keeping it in TODO. :) I'll do that.

VanWindow = new VandelayWindow();

// make window visible
VanWindow->Show();
}

VandelayApp::VandelayApp()
: BApplication("application/x-vnd.Blum-Vandelay")
void
VandelayApp::AboutRequested()
{
VandelayWindow *VanWindow;
BRect WindowRect;
BAlert *alert = new BAlert("about",
"VanDelay v1.0\n"
"\tby David Blumberg,\n"
"\tdavidblumberg@linux.se\n"
"\tCopyright 200?\n\n"
"Convert between units and all kinds of\n"
"measurements with ease.",
"Thank you"
);

This comment has been minimized.

Copy link
@waddlesplash

waddlesplash Mar 18, 2017

Member

Closebrace goes to previous line (see coding guidelines).


// Set up a rectangle and make a new window
WindowRect.Set(100, 100, 400, 300);
VanWindow = new VandelayWindow(WindowRect);

// make window visible
VanWindow->Show();
}
BTextView *view = alert->TextView();
BFont font;
view->SetStylable(true);
view->GetFont(&font);
font.SetSize(font.Size() + 4);
font.SetFace(B_BOLD_FACE);
view->SetFontAndColor(0, 11, &font);
alert->Go();
}


int main() {

VandelayApp VanApp;
VanApp.Run();
return 0;
}
@@ -2,13 +2,19 @@
#define VANDELAY_H

#include <Application.h>
#include "VandelayWindow.h"


/*------Create-new-BApplication-class-----------------*/
class VandelayApp : public BApplication
{
public:
VandelayApp();
void AboutRequested();


private:
VandelayWindow * VanWindow;
};

#endif // VANDELAY_H
#endif // VANDELAY_H

This file was deleted.

This file was deleted.

@@ -1,65 +1,55 @@
#include <Application.h>
#include <LayoutBuilder.h>
#include <Alert.h>
#include "VandelayWindow.h"
#include "VandelayView.h"
#include "Constants.h"
#include "VandelayEngine.h"

float InputValue, Result; // Store Input And Result value
int FromValue, ToValue; // Store From and To number
VanTextControl *vantextcontrol, *vanresultcontrol; // Pointers to VanTextControl
VanMenuField *vanmenufieldfrom, *vanmenufieldto; // Pointers to VanMenuField


/*------Create-new-BWindow-class--------------------------------------*/
VandelayWindow::VandelayWindow(BRect frame)
: BWindow(frame, "Vandelay", B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE)
VandelayWindow::VandelayWindow()
: BWindow(BRect(0,0,-1,-1), "Vandelay", B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE)
{

// Resize and Center Window on Screen
ResizeTo(400,300);
CenterOnScreen();

// Assign B_PANEL_BACKGROUND_COLOR to 'bgcolor'
rgb_color bgcolor = ui_color(B_PANEL_BACKGROUND_COLOR);

// Set up a rectangle and make a new view
VandelayView *VanView;
VanView = new VandelayView(Bounds(), "VandelayView");

VanView = new BView("VandelayView", B_WILL_DRAW);

// Create new BMenuBar
BRect VanRect = Bounds();
VanRect.bottom = VanRect.top +10;
VanMenuBar *vanmenubar;
vanmenubar = new VanMenuBar(VanRect, "VanMenuBar");
vanmenubar = new BMenuBar("VanMenuBar");

// Create new BMenu
VanMenu *filemenu;
filemenu = new VanMenu("File");
filemenu = new BMenu("File");

// Add menu items to BMenu
filemenu->AddItem(new BMenuItem("About", new BMessage(MENU_FILE_ABOUT)));

BMenuItem * item = new BMenuItem("About" , new BMessage(B_ABOUT_REQUESTED));
item->SetTarget(be_app);
filemenu->AddItem(item);
filemenu->AddSeparatorItem();
filemenu->AddItem(new BMenuItem("Quit", new BMessage(MENU_FILE_QUIT), 'Q'));
filemenu->AddItem(new BMenuItem("Quit", new BMessage(MENU_FILE_QUIT), 'Q', B_COMMAND_KEY));

// Add BMenu to BMenuBar
vanmenubar->AddItem(filemenu);

// Create new BBox
VanBox *vanbox;
BRect VanBoxRect = Bounds();
VanBoxRect.top += 31;
VanBoxRect.bottom -= 10;
VanBoxRect.InsetBy(10, 0);
vanbox = new VanBox(VanBoxRect, "Vandelay");

// Create new BTextControl
vantextcontrol = new VanTextControl(BRect(0.0, 0.0, 110.0, 10.0).OffsetToCopy(10.0, 15.0), "InputBox", "Convert:", "Enter #", new BMessage(CONVERT_FROM_VALUE));
// Create new BTextControl
vantextcontrol = new BTextControl("InputBox", NULL, "Enter #", new BMessage(CONVERT_FROM_VALUE));
vantextcontrol->SetDivider(45.0);
vantextcontrol->SetModificationMessage(new BMessage(CONVERT_FROM_VALUE_MODMSG));


/*------Create-new-BMenuField-----------------------------*/
// Create new BMenu
VanMenu *vanmenufrom;
VanMenu *vanmenuto;
vanmenufrom = new VanMenu("<Select Unit>");
vanmenuto = new VanMenu("<Select Unit>");
vanmenufrom = new BMenu("<Select Unit>");
vanmenuto = new BMenu("<Select Unit>");

// Add menu items to BMenus // Distance
vanmenufrom->AddItem(new BMenuItem("Foot", new BMessage(CONVERT_FROM_FOOT)));
@@ -98,35 +88,51 @@ VandelayWindow::VandelayWindow(BRect frame)
vanmenuto->AddItem(new BMenuItem("Pound", new BMessage(CONVERT_TO_POUND)));

// Create new BMenuField
vanmenufieldfrom = new VanMenuField(BRect(0.0, 0.0, 140.0, 10.0).OffsetToCopy(132.0, 15.0), "VanMenuFieldFrom", "From:", vanmenufrom);
vanmenufieldfrom = new BMenuField("VanMenuFieldFrom", NULL, vanmenufrom);
vanmenufieldfrom->SetDivider(32.0);
vanmenufieldfrom->Menu()->SetLabelFromMarked(true);
vanmenufieldfrom->SetEnabled(false);

vanmenufieldto = new VanMenuField(BRect(0.0, 0.0, 140.0, 10.0).OffsetToCopy(132.0, 50.0), "VanMenuFieldTo", "To:", vanmenuto);
vanmenufieldto = new BMenuField("VanMenuFieldTo", NULL, vanmenuto);
vanmenufieldto->SetDivider(32.0);
vanmenufieldto->SetAlignment(B_ALIGN_RIGHT);
vanmenufieldto->Menu()->SetLabelFromMarked(true);
vanmenufieldto->SetEnabled(false);

vanfromtext= new BStringView( "input_label", "Convert From");
vantotext= new BStringView("output_label", "Convert To");

/*------Create-a-result-view------------------------------*/
vanresultcontrol = new VanTextControl(BRect(0.0, 0.0, 150.0, 10.0).OffsetToCopy(48.0, 125.0), "VanResultControl", "Result:", NULL, NULL);
vanresultcontrol = new BTextControl("VanResultControl", NULL, NULL, NULL);
vanresultcontrol->SetDivider(35.0);


/*------Set-views-background-colors-----------------------*/
VanView->SetViewColor(bgcolor);
vanbox->SetViewColor(bgcolor);

/*------Add views to VandelayWindow-----------------------*/
AddChild(VanView);
VanView->AddChild(vanmenubar);
VanView->AddChild(vanbox);
vanbox->AddChild(vantextcontrol);
vanbox->AddChild(vanmenufieldfrom);
vanbox->AddChild(vanmenufieldto);
vanbox->AddChild(vanresultcontrol);

BLayoutBuilder::Group<>(VanView, B_VERTICAL)
.SetInsets(20)
.AddGrid()
.Add(vanfromtext,0,0)
.Add(vanmenufieldfrom,1,0)
.Add(vantextcontrol,0,1,2,1)
.Add(vantotext,0,2)
.Add(vanmenufieldto,1,2)
.Add(vanresultcontrol,0,3,2,1)
.End()
.End();


BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_WINDOW_SPACING)

This comment has been minimized.

Copy link
@waddlesplash

waddlesplash Mar 18, 2017

Member

Maybe use HALF_ITEM_SPACING instead and see how that looks.

This comment has been minimized.

Copy link
@AkshayAgarwal007

AkshayAgarwal007 Mar 18, 2017

Author Contributor

I'll check this one out.

This comment has been minimized.

Copy link
@AkshayAgarwal007

AkshayAgarwal007 Mar 18, 2017

Author Contributor

looks the same.

.SetInsets(0)
.Add(vanmenubar)
.AddGlue()
.Add(VanView)
.AddGlue()
.End();

This comment has been minimized.

Copy link
@waddlesplash

waddlesplash Mar 18, 2017

Member

Indent with tabs not spaces.


}


@@ -143,12 +149,7 @@ void VandelayWindow::MessageReceived(BMessage *message)
{
switch(message->what)
{
case MENU_FILE_ABOUT:
{
VanAlert *vanalert = new VanAlert("about", "Vandelay 1.0\n\nBy David Blumberg\ndavidblumberg@linux.se", "Unbelievable!", NULL, NULL);
vanalert->Go();
}
break;

case MENU_FILE_QUIT:
be_app->PostMessage(B_QUIT_REQUESTED);
break;
@@ -347,8 +348,10 @@ void VandelayWindow::MessageReceived(BMessage *message)
}
break;


default:
BWindow::MessageReceived(message);
break;
}
}
}

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.