diff --git a/.genio b/.genio index 798444c..32e3d1d 100644 Binary files a/.genio and b/.genio differ diff --git a/App.cpp b/App.cpp index 3017c9e..118bfc7 100644 --- a/App.cpp +++ b/App.cpp @@ -16,6 +16,8 @@ const char *kApplicationSignature = "application/x-vnd.SLema-DumBer"; App::App() : BApplication(kApplicationSignature) { MainWindow *m = new MainWindow(); + m->SetLook(B_DOCUMENT_WINDOW_LOOK); + m->SetFeel(B_NORMAL_WINDOW_FEEL); mainWindow = m; mainWindow->Show(); } @@ -31,7 +33,7 @@ void App::AboutRequested() { BAboutWindow *about = new BAboutWindow(B_TRANSLATE_SYSTEM_NAME("DumBer"), kApplicationSignature); about->AddDescription(B_TRANSLATE("about_body")); - about->AddCopyright(2024-2025, "Santiago Lema"); + about->AddCopyright(2025, "Santiago Lema"); about->AddText("e-mail me at haiku@lema.org"); about->AddText("or find me on the fediverse as\n@santi@go.lema.org"); diff --git a/Conversation.cpp b/Conversation.cpp index 7431597..1b6dbc8 100644 --- a/Conversation.cpp +++ b/Conversation.cpp @@ -122,12 +122,12 @@ void Conversation::MessageReceived(BMessage *message) { try { - // printf("full Reply as text:%s",body.text.value().String()); + printf("full Reply as text:%s",body.text.value().String()); json parsed = json::parse(body.text.value().String()); printf("Parsed..\n"); std::string objType = parsed["object"]; - printf("Reply of type object :%s\n", objType.c_str()); + // printf("Reply of type object :%s\n", objType.c_str()); if (objType == "list") { // printf("full Reply as text:%s",body.text.value().String()); diff --git a/DumBer b/DumBer index 5eb2cc9..4681caa 100755 Binary files a/DumBer and b/DumBer differ diff --git a/MainWindow.cpp b/MainWindow.cpp index bf6029d..d1f0ea1 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -5,6 +5,7 @@ #include "MainWindow.h" + static int progressAnim = 0; static int progressColor = 0; static bool progressColorUp = false; @@ -17,6 +18,7 @@ static bool progressColorUp = false; #include #include #include +#include #include #include #include @@ -25,7 +27,10 @@ static bool progressColorUp = false; #include #include +#include + #include "Conversation.h" +#include #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Window" @@ -106,9 +111,23 @@ MainWindow::MainWindow() _answerView->SetFlags(_answerView->Flags() | B_FULL_UPDATE_ON_RESIZE); _answerScrollView->SetFlags(_answerView->Flags() | B_FULL_UPDATE_ON_RESIZE); +/* + BView *imageView = new BView("icon_view", B_WILL_DRAW | B_FOLLOW_NONE); + imageView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + + BBitmap* oneImage = BTranslationUtils::GetBitmap('RAWT', 77, NULL); + imageView->SetViewColor(ui_color(B_CONTROL_BORDER_COLOR)); + + if (oneImage) { + imageView->SetViewBitmap(oneImage,B_FOLLOW_LEFT_TOP, B_TILE_BITMAP); + printf("Image loaded!\n"); + } +else { + printf("Image NOT loaded!\n"); + } +*/ + - // BView *imageView = new BView("icon_view", B_WILL_DRAW | B_FOLLOW_NONE); - // imageView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); BStringView *headerQuestion = new BStringView("questionLabel", "Your question: "); @@ -119,67 +138,62 @@ rgb_color colorQuestion = {100, 100,150, 255}; //high color = txt headerQuestion->SetHighColor(colorQuestion); -headerAnswer->SetHighColor(colorQuestion); +headerAnswer->SetHighColor(colorQuestion); +BLayoutBuilder::Group<>(this, B_VERTICAL, 0) - BLayoutBuilder::Group<>(this, B_VERTICAL, 0) + .AddGlue(0.1) + .Add(headerQuestion) + .AddGroup(B_HORIZONTAL, 0, 1) + .Add(_inputField) + .AddGlue(0.01) +// .Add(imageView) - .AddGlue(0.1) - .Add(headerQuestion) - .AddGroup(B_HORIZONTAL, 0, 1) - - .Add(_inputField) - .AddGlue(0.01) - - .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING, 0) - - - . AddGroup(B_HORIZONTAL, 0) - .Add(_infoConversation).AddGlue(0.1) - .End() - . AddGroup(B_HORIZONTAL, 0) - .Add(_modelField).AddGlue(0.1) - .End() - . AddGroup(B_HORIZONTAL, 0) - .Add(_sendButton).AddGlue(0.1) - .End() - - - .End() - - - .End() + .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING, 0) -.AddGlue(0.1) - .Add(headerAnswer) - .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING, 1.0) + .AddGroup(B_HORIZONTAL, 0) + .Add(_infoConversation) + .AddGlue(0.1) + .End() + .AddGroup(B_HORIZONTAL, 0) + .Add(_modelField) + .AddGlue(0.1) + .End() + .AddGroup(B_HORIZONTAL, 0) + .Add(_sendButton) + .AddGlue(0.1) + .End() - .Add(_answerScrollView, 1) - .Add(_progress,0.1) - .Add(_infoView,0.1) - .End() - .SetInsets(6,6, 6, 6) + .End() + .End() - - .End(); + .AddGlue(0.1) + .Add(headerAnswer) + .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING, 1.0) - // Loop Just to animate progress in Bar - BMessageRunner *runner = new BMessageRunner(this, // target BHandler - new BMessage(kPulse), - 100000 // interval in μs (0 ms) + .Add(_answerScrollView, 1) + .Add(_progress, 0.1) + .Add(_infoView, 0.1) + .End() + .SetInsets(6, 6, 6, 6) + + .End(); + +// Loop Just to animate progress in Bar +BMessageRunner *runner = new BMessageRunner(this, // target BHandler + new BMessage(kPulse), + 100000 // interval in μs (0 ms) - ); +); +updateHistoryInfo(); - updateHistoryInfo(); - - PostMessage(kCheckKey); +PostMessage(kCheckKey); } - void MainWindow::checkValidKey() { if (!_conversation->validKey) { diff --git a/Resources.rdef b/Resources.rdef index c5d3ad6..61a8def 100644 --- a/Resources.rdef +++ b/Resources.rdef @@ -16,6 +16,7 @@ resource app_version { short_info = "A simple native Haiku client for ChatGPT", long_info = "A simple native Haiku client for ChatGPT that uses simple text and very little memory. It requires having your own API Key." }; + resource vector_icon { $"6E6369660804016B0500020006023CADEB3D1051BD10513CADEB4C3551C6C7FF" @@ -44,3 +45,7 @@ resource vector_icon { $"0A030103000A040104000A050105000A0600000A01001001178400040A070000" $"0A04010600" }; + + + +