[haiku-commits] haiku: hrev44392 - src/apps/codycam

  • From: fredrik@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 24 Jul 2012 00:08:38 +0200 (CEST)

hrev44392 adds 1 changeset to branch 'master'
old head: 48b4d20480441b4525de6b90cab9539a834ab8fd
new head: 1615cec9ccc313a086192c0775fdc32bb267a260

----------------------------------------------------------------------------

1615cec: Fixing #7984 and some code guidelines.

                                      [ Fredrik Modéen <fredrik@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44392
Commit:      1615cec9ccc313a086192c0775fdc32bb267a260
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1615cec
Author:      Fredrik Modéen <fredrik@xxxxxxxxx>
Date:        Tue Jul 24 00:05:56 2012 UTC

Ticket:      https://dev.haiku-os.org/ticket/7984

----------------------------------------------------------------------------

2 files changed, 37 insertions(+), 17 deletions(-)
src/apps/codycam/CodyCam.cpp |   45 +++++++++++++++++++++++++-------------
src/apps/codycam/CodyCam.h   |    9 ++++++--

----------------------------------------------------------------------------

diff --git a/src/apps/codycam/CodyCam.cpp b/src/apps/codycam/CodyCam.cpp
index 2b79880..a00dfd8 100644
--- a/src/apps/codycam/CodyCam.cpp
+++ b/src/apps/codycam/CodyCam.cpp
@@ -65,7 +65,6 @@ ErrorAlert(const char* message, status_t err, BWindow *window 
= NULL)
        alert->Go();
 
        printf("%s\n%s [%lx]", message, strerror(err), err);
-//     be_app->PostMessage(B_QUIT_REQUESTED);
 }
 
 
@@ -122,13 +121,15 @@ AddTranslationItems(BMenu* intoMenu, uint32 fromType)
 
 // functions for EnumeratedStringValueSettings
 
-const char* CaptureRateAt(int32 i)
+const char*
+CaptureRateAt(int32 i)
 {
        return (i >= 0 && i < kCaptureRatesCount) ? kCaptureRates[i].name : 
NULL;
 }
 
 
-const char* UploadClientAt(int32 i)
+const char*
+UploadClientAt(int32 i)
 {
        return (i >= 0 && i < kUploadClientsCount) ? kUploadClients[i] : NULL;
 }
@@ -200,7 +201,8 @@ CodyCam::ReadyToRun()
                (const char*) B_TRANSLATE_SYSTEM_NAME("CodyCam"), 
B_TITLED_WINDOW,
                B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS, &fPort);
 
-       _SetUpNodes();
+       if(_SetUpNodes() != B_OK)
+               fWindow->ToggleMenuOnOff();
 
        ((VideoWindow*)fWindow)->ApplyControls();
 }
@@ -490,33 +492,33 @@ VideoWindow::VideoWindow(BRect frame, const char* title, 
window_type type,
        BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), "menu bar");
 
        BMenuItem* menuItem;
-       BMenu* menu = new BMenu(B_TRANSLATE("File"));
+       fMenu = new BMenu(B_TRANSLATE("File"));
 
        menuItem = new BMenuItem(B_TRANSLATE("Video settings"),
                new BMessage(msg_video), 'P');
        menuItem->SetTarget(be_app);
-       menu->AddItem(menuItem);
+       fMenu->AddItem(menuItem);
 
-       menu->AddSeparatorItem();
+       fMenu->AddSeparatorItem();
 
        menuItem = new BMenuItem(B_TRANSLATE("Start video"),
                new BMessage(msg_start), 'A');
        menuItem->SetTarget(be_app);
-       menu->AddItem(menuItem);
+       fMenu->AddItem(menuItem);
 
        menuItem = new BMenuItem(B_TRANSLATE("Stop video"),
                new BMessage(msg_stop), 'O');
        menuItem->SetTarget(be_app);
-       menu->AddItem(menuItem);
+       fMenu->AddItem(menuItem);
 
-       menu->AddSeparatorItem();
+       fMenu->AddSeparatorItem();
 
        menuItem = new BMenuItem(B_TRANSLATE("Quit"),
                new BMessage(B_QUIT_REQUESTED), 'Q');
        menuItem->SetTarget(be_app);
-       menu->AddItem(menuItem);
+       fMenu->AddItem(menuItem);
 
-       menuBar->AddItem(menu);
+       menuBar->AddItem(fMenu);
 
        /* add some controls */
        _BuildCaptureControls();
@@ -717,6 +719,7 @@ VideoWindow::_BuildCaptureControls()
 
        // FTP setup box
        fFtpSetupBox = new BBox("FTP Setup", B_WILL_DRAW);
+       fFtpSetupBox->SetLabel(B_TRANSLATE("Output"));
 
        fUploadClientMenu = new BPopUpMenu(B_TRANSLATE("Send to" 
B_UTF8_ELLIPSIS));
        for (int i = 0; i < kUploadClientsCount; i++) {
@@ -724,14 +727,12 @@ VideoWindow::_BuildCaptureControls()
                m->AddInt32("client", i);
                fUploadClientMenu->AddItem(new BMenuItem(kUploadClients[i], m));
        }
+       
        fUploadClientMenu->SetTargetForItems(this);
        
fUploadClientMenu->FindItem(fUploadClientSetting->Value())->SetMarked(true);
        fUploadClientSelector = new BMenuField("UploadClient", NULL,
                fUploadClientMenu);
 
-       fFtpSetupBox->SetLabel(B_TRANSLATE("Output"));
-       // this doesn't work with the layout manager
-       // fFtpSetupBox->SetLabel(fUploadClientSelector);
        fUploadClientSelector->SetLabel(B_TRANSLATE("Type:"));
 
        BGridLayout *ftpLayout = new BGridLayout(kXBuffer, 0);
@@ -875,6 +876,20 @@ VideoWindow::_QuitSettings()
 }
 
 
+void
+VideoWindow::ToggleMenuOnOff()
+{
+       BMenuItem* item = fMenu->FindItem(msg_video);
+       item->SetEnabled(!item->IsEnabled());
+       
+       item = fMenu->FindItem(msg_start);
+       item->SetEnabled(!item->IsEnabled());
+       
+       item = fMenu->FindItem(msg_stop);
+       item->SetEnabled(!item->IsEnabled());
+}
+
+
 //     #pragma mark -
 
 
diff --git a/src/apps/codycam/CodyCam.h b/src/apps/codycam/CodyCam.h
index b87f4c3..c6bd963 100644
--- a/src/apps/codycam/CodyCam.h
+++ b/src/apps/codycam/CodyCam.h
@@ -84,6 +84,8 @@ const char* kUploadClients[] = {
 
 const int32 kUploadClientsCount = sizeof(kUploadClients) / sizeof(char*);
 
+class VideoWindow;
+class ControlWindow;
 
 class CodyCam : public BApplication {
 public:
@@ -104,9 +106,9 @@ private:
                        VideoConsumer*  fVideoConsumer;
                        media_output    fProducerOut;
                        media_input             fConsumerIn;
-                       BWindow*                fWindow;
+                       VideoWindow*    fWindow;
                        port_id                 fPort;
-                       BWindow*                fVideoControlWindow;
+                       ControlWindow*  fVideoControlWindow;
 };
 
 
@@ -124,6 +126,7 @@ public:
 
                        BView*                  VideoView();
                        BStringView*    StatusLine();
+                       void                    ToggleMenuOnOff();
 
 private:
                        void                    _BuildCaptureControls();
@@ -159,6 +162,8 @@ private:
                        ftp_msg_info    fFtpInfo;
 
                        Settings*               fSettings;
+                       
+                       BMenu*                  fMenu;
 
                        StringValueSetting*             fServerSetting;
                        StringValueSetting*             fLoginSetting;


Other related posts:

  • » [haiku-commits] haiku: hrev44392 - src/apps/codycam - fredrik