Rework NetworkStatus to use a non-modal BAboutWindow
This commit is contained in:
parent
5bf91175bc
commit
730a45ee8f
|
@ -17,7 +17,7 @@ Application NetworkStatus :
|
|||
RadioView.cpp
|
||||
WirelessNetworkMenuItem.cpp
|
||||
|
||||
: be $(HAIKU_LOCALE_LIBS) $(icon_libs) $(TARGET_NETWORK_LIBS)
|
||||
: be libshared.a $(HAIKU_LOCALE_LIBS) $(icon_libs) $(TARGET_NETWORK_LIBS)
|
||||
libbnetapi.so $(TARGET_LIBSTDC++)
|
||||
: NetworkStatus.rdef NetworkStatusIcons.rdef
|
||||
;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <sys/sockio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <AboutWindow.h>
|
||||
#include <Alert.h>
|
||||
#include <Application.h>
|
||||
#include <Catalog.h>
|
||||
|
@ -138,6 +139,9 @@ NetworkStatusView::NetworkStatusView(BMessage* archive)
|
|||
|
||||
NetworkStatusView::~NetworkStatusView()
|
||||
{
|
||||
// replicant deleted, destroy the about window
|
||||
if (fAboutWindow != NULL)
|
||||
fAboutWindow->Quit();
|
||||
}
|
||||
|
||||
|
||||
|
@ -150,6 +154,7 @@ NetworkStatusView::_Init()
|
|||
}
|
||||
|
||||
_UpdateBitmaps();
|
||||
fAboutWindow = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -216,7 +221,7 @@ NetworkStatusView::_Quit()
|
|||
}
|
||||
|
||||
|
||||
NetworkStatusView *
|
||||
NetworkStatusView*
|
||||
NetworkStatusView::Instantiate(BMessage* archive)
|
||||
{
|
||||
if (!validate_instantiation(archive, "NetworkStatusView"))
|
||||
|
@ -503,26 +508,22 @@ NetworkStatusView::MouseDown(BPoint point)
|
|||
void
|
||||
NetworkStatusView::_AboutRequested()
|
||||
{
|
||||
BString about = B_TRANSLATE(
|
||||
"NetworkStatus\n\twritten by %1 and Hugo Santos\n\t%2, Haiku, Inc.\n"
|
||||
);
|
||||
about.ReplaceFirst("%1", "Axel Dörfler");
|
||||
// Append a new developer here
|
||||
about.ReplaceFirst("%2", "Copyright 2007-2010");
|
||||
// Append a new year here
|
||||
BAlert* alert = new BAlert("about", about, B_TRANSLATE("OK"));
|
||||
alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE);
|
||||
BTextView *view = alert->TextView();
|
||||
BFont font;
|
||||
if (fAboutWindow == NULL) {
|
||||
const char* authors[] = {
|
||||
"Axel Dörfler",
|
||||
"Hugo Santos",
|
||||
NULL
|
||||
};
|
||||
|
||||
view->SetStylable(true);
|
||||
|
||||
view->GetFont(&font);
|
||||
font.SetSize(18);
|
||||
font.SetFace(B_BOLD_FACE);
|
||||
view->SetFontAndColor(0, 13, &font);
|
||||
|
||||
alert->Go();
|
||||
fAboutWindow = new BAboutWindow(
|
||||
B_TRANSLATE_SYSTEM_NAME("NetworkStatus"), kSignature);
|
||||
fAboutWindow->AddCopyright(2007, "Haiku, Inc.");
|
||||
fAboutWindow->AddAuthors(authors);
|
||||
fAboutWindow->Show();
|
||||
} else if (fAboutWindow->IsHidden())
|
||||
fAboutWindow->Show();
|
||||
else
|
||||
fAboutWindow->Activate();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
#include <map>
|
||||
|
||||
|
||||
class BAboutWindow;
|
||||
class BMessageRunner;
|
||||
class BNetworkInterface;
|
||||
|
||||
|
@ -64,6 +66,7 @@ class NetworkStatusView : public BView {
|
|||
|
||||
std::map<BString, int32>
|
||||
fInterfaceStatuses;
|
||||
BAboutWindow* fAboutWindow;
|
||||
bool fInDeskbar;
|
||||
BBitmap* fTrayIcons[kStatusCount];
|
||||
BBitmap* fNotifyIcons[kStatusCount];
|
||||
|
|
Loading…
Reference in New Issue