Chat-O-Matic/application/views/SearchBarTextControl.cpp.bak

80 lines
1.8 KiB
C++
Raw Normal View History

/*
* Copyright 2012, Dario Casalinuovo. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Dario Casalinuovo, dario.casalinuovo@gmail.com
*/
#include "CayaConstants.h"
#include "SearchBarTextControl.h"
#include <Font.h>
#include <String.h>
#include <Window.h>
#include <stdio.h>
const char* kSearchText = "Search...";
SearchBarTextControl::SearchBarTextControl(BMessage* message)
:
BTextControl("searchBox", NULL, NULL, message)
{
//SetEventMask(B_POINTER_EVENTS);
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
rgb_color color = tint_color(ViewColor(), B_DARKEN_1_TINT);
SetText(kSearchText);
TextView()->SetName("SearchBoxTextView");
TextView()->SetFontAndColor(NULL, B_FONT_ALL, &color);
TextView()->MakeSelectable(false);
}
void
SearchBarTextControl::MouseDown(BPoint position)
{
BString text(Text());
BPoint currentPosition;
uint32 buttons;
GetMouse(&currentPosition, &buttons);
BView* view = Window()->FindView(currentPosition);
if (view != NULL) {
if (view->Name() == TextView()->Name()
|| view->Name() == Name()) {
//TextView()->Select(0,0);
if (TextView()->IsFocus()) {
SetText("");
printf("mouse down\n");
BTextControl::MouseDown(position);
}
}
}
if (!TextView()->IsFocus()) {
printf("is not focus\n");
BView* buddyView = Window()->FindView("buddyView");
if (text.Length() == 0 || text == kSearchText
|| !buddyView->IsFocus())
SetText(kSearchText);
}
}
void
SearchBarTextControl::KeyDown(const char* bytes, int32 numBytes)
{
if (TextView()->IsFocus()) {
if (Text() == kSearchText)
SetText("");
BTextControl::KeyDown(bytes, numBytes);
BString text(Text());
if (TextView()->IsFocus() && text.Length() > 0) {
BMessage* msg = ModificationMessage();
msg->AddPointer("source", this);
Window()->MessageReceived(msg);
}
}
}