feat(modulo): make search bar hint configurable
This commit is contained in:
parent
eb7474763b
commit
96ce9090f8
|
@ -48,6 +48,9 @@ pub struct SearchConfig {
|
|||
|
||||
#[serde(default = "default_algorithm")]
|
||||
pub algorithm: String,
|
||||
|
||||
#[serde(default)]
|
||||
pub hint: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||
|
|
|
@ -36,5 +36,6 @@ pub fn generate(config: SearchConfig) -> types::Search {
|
|||
title: config.title,
|
||||
items,
|
||||
icon: config.icon,
|
||||
hint: config.hint,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,6 +87,7 @@ typedef struct SearchResults {
|
|||
typedef struct SearchMetadata {
|
||||
const char *windowTitle;
|
||||
const char *iconPath;
|
||||
const char *hintText;
|
||||
} SearchMetadata;
|
||||
|
||||
// WIZARD
|
||||
|
|
|
@ -105,6 +105,7 @@ pub struct SearchResults {
|
|||
pub struct SearchMetadata {
|
||||
pub windowTitle: *const ::std::os::raw::c_char,
|
||||
pub iconPath: *const ::std::os::raw::c_char,
|
||||
pub hintText: *const ::std::os::raw::c_char,
|
||||
}
|
||||
|
||||
pub const WIZARD_MIGRATE_RESULT_SUCCESS: i32 = 0;
|
||||
|
|
|
@ -33,6 +33,7 @@ pub mod types {
|
|||
pub struct Search {
|
||||
pub title: String,
|
||||
pub icon: Option<String>,
|
||||
pub hint: Option<String>,
|
||||
pub items: Vec<SearchItem>,
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +47,7 @@ mod interop {
|
|||
pub(crate) struct OwnedSearch {
|
||||
title: CString,
|
||||
icon_path: CString,
|
||||
hint: CString,
|
||||
items: Vec<OwnedSearchItem>,
|
||||
pub(crate) interop_items: Vec<SearchItem>,
|
||||
_interop: Box<SearchMetadata>,
|
||||
|
@ -80,18 +82,27 @@ mod interop {
|
|||
std::ptr::null()
|
||||
};
|
||||
|
||||
let hint = if let Some(hint) = search.hint.as_ref() {
|
||||
hint.clone()
|
||||
} else {
|
||||
"".to_owned()
|
||||
};
|
||||
|
||||
let hint = CString::new(hint).expect("unable to convert search icon to CString");
|
||||
|
||||
let hint_ptr = if search.hint.is_some() {
|
||||
hint.as_ptr()
|
||||
} else {
|
||||
std::ptr::null()
|
||||
};
|
||||
|
||||
let _interop = Box::new(SearchMetadata {
|
||||
iconPath: icon_path_ptr,
|
||||
windowTitle: title.as_ptr(),
|
||||
hintText: hint_ptr,
|
||||
});
|
||||
|
||||
Self {
|
||||
title,
|
||||
items,
|
||||
icon_path,
|
||||
interop_items,
|
||||
_interop,
|
||||
}
|
||||
Self { title, icon_path, hint, items, interop_items, _interop }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -222,11 +222,13 @@ SearchFrame::SearchFrame(const wxString &title, const wxPoint &pos, const wxSize
|
|||
|
||||
vbox->Add(topBox, 1, wxEXPAND);
|
||||
|
||||
helpText = new wxStaticText(panel, wxID_ANY, "Search matches by content or trigger (or type > to see commands)");
|
||||
if (searchMetadata->hintText) {
|
||||
helpText = new wxStaticText(panel, wxID_ANY, wxString::FromUTF8(searchMetadata->hintText));
|
||||
vbox->Add(helpText, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 10);
|
||||
wxFont helpFont = helpText->GetFont();
|
||||
helpFont.SetPointSize(HELP_TEXT_FONT_SIZE);
|
||||
helpText->SetFont(helpFont);
|
||||
}
|
||||
|
||||
wxArrayString choices;
|
||||
int resultId = NewControlId();
|
||||
|
|
Loading…
Reference in New Issue
Block a user