aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/db/xuiqueryline.cpp
blob: 2de3c9188656cc4ed771475df23b7e8b1fc17421 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <precomp.h>

#include "xuiqueryline.h"
#include <api/skin/widgets/db/xuiquerylist.h>

#define CB_SETQUERYLIST 0x1978

char QueryLineXuiObjectStr[] = "QueryLine"; // This is the xml tag
char QueryLineXuiSvcName[] = "QueryLine xui object";

ScriptQueryLine::ScriptQueryLine() {
  myxuihandle = newXuiHandle();
  addParam(myxuihandle, "querylist", QUERYLINE_SETQUERYLIST, XUI_ATTRIBUTE_IMPLIED);
  addParam(myxuihandle, "query", QUERYLINE_SETQUERY, XUI_ATTRIBUTE_IMPLIED);
  addParam(myxuihandle, "auto", QUERYLINE_SETAUTO, XUI_ATTRIBUTE_IMPLIED);
}

ScriptQueryLine::~ScriptQueryLine() { }

/*int ScriptQueryLine::onInit() {
  SCRIPTQUERYLINE_PARENT::onInit();
  if (!querylist_id.isempty())
    postDeferredCallback(CB_SETQUERYLIST, 0, 500);
  return 1;
}*/

int ScriptQueryLine::setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value) {
  if (xuihandle != myxuihandle)
    return SCRIPTQUERYLINE_PARENT::setXuiParam(xuihandle, xmlattributeid, xmlattributename, value);

  switch (xmlattributeid) {
    case QUERYLINE_SETQUERYLIST:
      setXuiQueryList(value);
    break;
    case QUERYLINE_SETQUERY:
      ql_setQuery(value);
    break;
    case QUERYLINE_SETAUTO:
      setAuto(WTOI(value));
    break;
    default:
      return 0;
  }
  return 1;
}

void ScriptQueryLine::ql_setQuery(const char *q) {
  ensureConnected();
  setQuery(q);
}

void ScriptQueryLine::ensureConnected() {
  api_window *o = findWindow(querylist_id);
  if (!o) return;
  ScriptQueryList *querylist = static_cast<ScriptQueryList *>(o->getInterface(queryListGuid));
  if (!querylist) return;
  sqs_setMultiQueryServer(querylist);
}

void ScriptQueryLine::setXuiQueryList(const char *v) {
  querylist_id = v;
}

/*int ScriptQueryLine::onDeferredCallback(intptr_t p1, intptr_t p2) {
  switch (p1) {
    case CB_SETQUERYLIST:
      break;
    default:
      return SCRIPTQUERYLINE_PARENT::onDeferredCallback(p1, p2);
  }
  return 1;
}
*/