// Stuff we can only do when the main view is attached to a window
void
OutputFormatView::AttachedToWindow()
{
	// Get the window and lock it
	the_window = Window();
	the_window->Lock();

	// Set some size limits on the window
	the_window->SetSizeLimits(
		200.0,
		32767.0,
		Bounds().Height() - scroll_view->Bounds().Height() + 50.0,
		32767.0);
	// Set the target for messages sent to this view
	list_view->SetTarget(this);
	the_button->SetTarget(this);

	// Make the list view the keyboard focus
	list_view->MakeFocus();

	// Select the first item in the list,
	// and make its config view show up
	if (list_view->CountItems() > 0)
		list_view->Select(0);
	else
		the_button->SetEnabled(false);

	// Unlock the window
	the_window->Unlock();

	// Call the base class
	BView::AttachedToWindow();
}
Exemplo n.º 2
0
AddOnListInfo::AddOnListInfo(BRect frame,BView *mother)
: BWindow(frame,"DontWorryWindow",B_BORDERED_WINDOW_LOOK, B_MODAL_SUBSET_WINDOW_FEEL,B_AVOID_FOCUS ),
_motherMessenger(mother)
{
	CPreferences	prefs(PREF_FILE_NAME,PREF_PATH_NAME);
	BRect			listRect = Bounds();
	BScrollView		*scrollinfo;
	BView			*scrollHBar;
	float			scrollHsize;

	_lastClass = NULL;
	_typeRequested = -1;

				
	// initialisees les images
	prefs.Load();
	_classesBitmap = prefs.GetBitmap("classes");
	_metodesBitmap = prefs.GetBitmap("metodes");
	_variablesBitmap = prefs.GetBitmap("variables");
	_privateBitmap = prefs.GetBitmap("private");
	_protectedBitmap = prefs.GetBitmap("protected");
	_virtualBitmap = prefs.GetBitmap("virtual");
	
	listRect.right -= 15;
	listRect.bottom -=15;
	_listOfInfos = new AddOnListView(listRect);
	scrollinfo = new BScrollView("scroll-info",_listOfInfos,B_FOLLOW_ALL_SIDES,0,true,true);
	
	// deplace la scroll bar du bas
	scrollHBar = scrollinfo->FindView("_HSB_");
	scrollHBar->ResizeBy(-70,0);
	scrollHBar->MoveBy(70,0);
	scrollHsize = (scrollHBar->Bounds()).Height()+1;
	
	listRect = scrollinfo->Bounds();
	_progress = new AddOnProgressView(BRect(2,listRect.bottom-scrollHsize,70,listRect.bottom-1));
	scrollinfo->AddChild(_progress);

	AddChild(scrollinfo);
	
	// place le focus sur la liste
	_listOfInfos->MakeFocus(true);
	
	// envoyer le pointer de la fenetre a la vue pour les deplacement
	BMessage	moveMsg(MOVE_WINDOW_PTR);
	
	moveMsg.AddPointer(WINDOW_RESULT_PTR,this);
	_motherMessenger.SendMessage(&moveMsg);
}
Exemplo n.º 3
0
void
PBox::AttachedToWindow(){
	
	//calc font height (for nice control size)	
	font_height fontHeight;
	be_bold_font->GetHeight(&fontHeight);
	fFontHeight = fontHeight.descent + fontHeight.leading + fontHeight.ascent;


	BRect frame = Bounds();
	frame.InsetBy(5,5);
	
	BRect temp = frame;
	temp.bottom = temp.top + 40;	
	
	SettingsTextView *testo1=new SettingsTextView(temp,"testo",_T("Settings"));
	AddChild(testo1);
	frame.top +=40;
	//BSeparator *sep=new BSeparator(frame,"sep","cippa");
	//sep->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
	//AddChild(sep);

	//frame.InsetBy(kEdgeOffset, kEdgeOffset);
	//frame.top += fFontHeight; //some space

#if SCROLLBAR
	frame.right -= B_V_SCROLL_BAR_WIDTH + 2;
#endif
	
			BView *view = new BView(frame, "", B_FOLLOW_ALL_SIDES,B_WILL_DRAW);
						
#if B_BEOS_VERSION > B_BEOS_VERSION_5
			view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
			view->SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR));
			view->SetHighColor(ui_color(B_PANEL_TEXT_COLOR));
#else
			view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
			view->SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR));
			view->SetHighColor(0, 0, 0, 0);
#endif

	
			float settings_height = BuildGUI(fTemplate, fData, view);
					

			view->ResizeTo( view->Bounds().Width(), settings_height);
#if	SCROLLBAR			


			BScrollView * scroller = new BScrollView(
				"scroller", view, B_FOLLOW_ALL,
				0, false, true
			);
			float scroll_height = scroller->Bounds().Height();
			float diff = settings_height - scroll_height;
			if ( diff < 0 ) diff = 0;
			
			scroller->ScrollBar(B_VERTICAL)->SetRange(0, diff);

			view = scroller;
#endif
			fPrefView = view;

			AddChild(fPrefView);
			
			testo1->SetText(fTemplate.FindString("name"));
}
Exemplo n.º 4
0
int32
LibraryWindow::ScanThread(void *data)
{
	LibraryWindow *win = (LibraryWindow *)data;

	float maxwidth;
	BRect r(5,5,105,20);
	
	BView *systemheader = win->AddHeader(r.LeftTop(),TR("System Libraries:"));
	
	win->Lock();
	r = systemheader->Frame();
	win->Unlock();
	maxwidth = r.right;
	
	r.OffsetBy(0,r.Height() + 10);
	
	DPath sysPath = GetSystemPath(B_USER_DEVELOP_DIRECTORY);
	sysPath << "lib/x86";
	BRect out = win->ScanFolder(r.LeftTop(),sysPath.GetFullPath(),&maxwidth);
	if (out != BRect(0,0,-1,-1))
	{
		r = out;
		r.OffsetBy(0,10);
	}
	
	if (gPlatform == PLATFORM_HAIKU || gPlatform == PLATFORM_HAIKU_GCC4)
	{
		BView *commonheader = win->AddHeader(r.LeftTop(),TR("Common Libraries:"));
		win->Lock();
		r = commonheader->Frame();
		win->Unlock();
		maxwidth = MAX(r.right,maxwidth);
		
		r.OffsetBy(0,r.Height() + 10);
		
		out = win->ScanFolder(r.LeftTop(),GetSystemPath(B_USER_LIB_DIRECTORY).GetFullPath(),
							&maxwidth);
		if (out != BRect(0,0,-1,-1))
		{
			r = out;
			r.OffsetBy(0,10);
		}
	}
	
	BView *userheader = win->AddHeader(r.LeftTop(),TR("User Libraries:"));
	win->Lock();
	r = userheader->Frame();
	win->Unlock();
	maxwidth = MAX(r.right,maxwidth);
	
	r.OffsetBy(0,r.Height() + 10);
	
	out = win->ScanFolder(r.LeftTop(),GetSystemPath(B_USER_LIB_DIRECTORY).GetFullPath(),
						&maxwidth);
	if (out.IsValid())
	{
		r = out;
		r.OffsetBy(0,10);
	}
	
	win->Lock();
	BView *top = win->GetBackgroundView();
	BScrollView *scrollView = (BScrollView*)top->FindView("scrollView");
	
	BScrollBar *vbar = scrollView->ScrollBar(B_VERTICAL);
	vbar->SetRange(0, r.bottom - scrollView->Bounds().Height());
	vbar->SetSteps(r.Height() * 2.0,r.Height() * 8.0);
	gSettings.Lock();
	BRect savedframe;
	if (gSettings.FindRect("libwin_frame",&savedframe) == B_OK)
		win->ResizeTo(savedframe.Width(),savedframe.Height());
	gSettings.Unlock();
	
	BStringView *label = (BStringView*)top->FindView("label");
	label->SetText(TR("Choose the system libraries for your project."));
	float minw = label->Frame().right + 10;
	win->SetSizeLimits(minw,30000,200,30000);
	if (win->Bounds().Width() < minw)
		win->ResizeTo(minw,win->Bounds().Height());
	win->fScanThread = -1;
	win->Unlock();
	
	return 0;
}
/*
 * BLSettingsBlockedView(BRect canvas);
 *
 */
BLSettingsBlockedView::BLSettingsBlockedView(BRect canvas, BLSettings* bls)
: BView(canvas, "blockedview", B_FOLLOW_ALL_SIDES, B_WILL_DRAW), Settings(bls), FilePanel(NULL)
{
	SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));

	float Padding = 5.0;
	float ButtonHeight = 25.0;
	
	/* Calculate list view position */
	BRect rectLVPos = BRect(canvas.left + Padding, canvas.top + Padding, canvas.right - (Padding + B_V_SCROLL_BAR_WIDTH + 3), canvas.bottom - (Padding + 3 + B_H_SCROLL_BAR_HEIGHT + 35));

	/* Create and add listview and scrollview*/
	ListView = new BListView(rectLVPos, "Blocked");
	BScrollView* scrollview = new BScrollView("scroll_blocked", ListView, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_NO_BORDER, true, true);
	scrollview->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
	AddChild(scrollview);	

	/* Calculate the size and position of the Add button */
	BRect btnAddRect(Bounds().right - (Padding + 60), Bounds().bottom - (Padding + ButtonHeight + 3), scrollview->Bounds().right, Bounds().bottom - (Padding + 3));
		
	/* Create and add the Add button */
	btnAdd = new BButton(btnAddRect, "BeLoginSettings_AddButton", "Add", new BMessage(BL_ADD_ITEM));
	btnAdd->MakeDefault(true);
	btnAdd->SetTarget(this);
	AddChild(btnAdd);

	/* Calculate the size and position of the Add button */
	BRect TextControlRect(ListView->Bounds().left , Bounds().bottom - (Padding + ButtonHeight), Bounds().right - (Padding*2 + btnAdd->Bounds().Width()) , ListView->Bounds().bottom - Padding);

	/* Create and add the password Textcontrol */
	txtSignature = new BTextControl(TextControlRect, "BeLoginView_signature", "", "", NULL);
	txtSignature->SetDivider(0.0);
	AddChild(txtSignature);	


	/* Add blocked to list */
	BLBlocked* blocked = Settings->GetBlocked(); 
	for(int i=0;i<blocked->CountItems();i++)
		ListView->AddItem(new BStringItem((blocked->ItemAt(i))->String()));

	/* Set up messaging */
	ListView->SetInvocationMessage(new BMessage(BL_REMOVE_ITEM));

	ListView->SetTarget(this);
	txtSignature->SetText("application/");
}
// Private function to add the config view of the currently
// selected output format to our window
void
OutputFormatView::AddConfigView()
{
	the_window->Lock();
	// Remove the window size limits,
	// so we are free to do whatever we like
	the_window->SetSizeLimits(0.0, 32767.0, 0.0, 32767.0);
	// The current views must stay put while we resize
	// the window to make room for the config view
	MakeFollowBottom(false);

	// Remove the old config view if there is one
	if (config_view)
	{
		RemoveChild(config_view);
		delete config_view;
		config_view = 0;
	}

	BRect config_rect;
	if (the_roster->MakeConfigurationView(
	    	output_list[index].translator,
	    	0,
	    	&config_view,
	    	&config_rect) == B_NO_ERROR &&
	    config_view != 0)
	{
		// Create a caption for the config view
		// if there wasn't one already
		if (!config_caption)
		{
			config_caption = new CaptionView(
				BRect(8.0, info_view->Frame().bottom + 1.0, Bounds().right - 8.0, 0.0),
				"config caption",
				StringsRsrc[STR_TRANSLATOR_SETTINGS]);
			config_caption->SetResizingMode(B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP);
			AddChild(config_caption);
		}

		// Move the config view to just below the config caption
		config_view->MoveBy(
			16.0 - config_view->Frame().left,
			config_caption->Frame().bottom + 1.0 - config_view->Frame().top);

		// Colour it gray
		config_view->SetViewColor(222, 222, 222);
		config_view->SetLowColor(222, 222, 222);

		// First resize the window so that the config view will fit,
		// otherwise the config view may want to change with us
		float width_diff = config_view->Frame().right + 16.0 - Bounds().Width();
		the_window->ResizeTo(
			Bounds().Width() + (width_diff > 0.0 ? width_diff : 0.0),
			config_view->Frame().bottom + 8.0);

		// Add it to the main view
		AddChild(config_view);

		// Make the config_view and its children follow the bottom of the window
		RecursiveSetMode(config_view);
	}
	else
	{
		// This translator doesn't have a config view
		if (config_caption)
		{
			RemoveChild(config_caption);
			delete config_caption;
			config_caption = 0;
		}
		the_window->ResizeTo(Bounds().right, info_view->Frame().bottom + 8.0);
	}

	// Make all views follow the bottom of the window again
	MakeFollowBottom();

	// Set the window's minimum size
	float min_width = (config_view ? config_view->Frame().right : 200.0);
	if (min_width < 200.0)
		min_width = 200.0;
	the_window->SetSizeLimits(
		min_width,
		32767.0,
		Bounds().Height() - scroll_view->Bounds().Height() + 50.0,
		32767.0);

	the_window->Unlock();
}