Added settings set/get functions to client API

- setting setter function has internal handling. TODO: callback to
client.
- added missing SmartSizing param
This commit is contained in:
Benoit LeBlanc 2013-04-15 15:58:56 -04:00
parent 8a637e0c0d
commit 315f3705b2
3 changed files with 103 additions and 0 deletions

View File

@ -872,3 +872,85 @@ int freerdp_client_free(wfInfo* wfi)
return 0;
}
BOOL freerdp_client_get_param_bool(wfInfo* cfi, int id)
{
return freerdp_get_param_bool(cfi->instance->settings, id);
}
int freerdp_client_set_param_bool(wfInfo* cfi, int id, BOOL param)
{
int rc;
rc = freerdp_set_param_bool(cfi->instance->settings, id, param);
// Process callbacks here
return rc;
}
UINT32 freerdp_client_get_param_uint32(wfInfo* cfi, int id)
{
return freerdp_get_param_uint32(cfi->instance->settings, id);
}
int freerdp_client_set_param_uint32(wfInfo* cfi, int id, UINT32 param)
{
int rc;
rc = freerdp_set_param_uint32(cfi->instance->settings, id, param);
// Process callbacks here
return rc;
}
UINT64 freerdp_client_get_param_uint64(wfInfo* cfi, int id)
{
return freerdp_get_param_uint64(cfi->instance->settings, id);
}
int freerdp_client_set_param_uint64(wfInfo* cfi, int id, UINT64 param)
{
int rc;
rc = freerdp_set_param_uint64(cfi->instance->settings, id, param);
// Process callbacks here
return rc;
}
char* freerdp_client_get_param_string(wfInfo* cfi, int id)
{
return freerdp_get_param_string(cfi->instance->settings, id);
}
void wf_on_param_change(wfInfo* cfi, int id)
{
RECT rect;
// specific processing here
switch(id)
{
case FreeRDP_SmartSizing:
fprintf(stderr, "SmartSizing changed.\n");
GetWindowRect(cfi->hwnd, &rect);
InvalidateRect(cfi->hwnd, &rect, TRUE);
break;
}
// trigger callback to client
}
int freerdp_client_set_param_string(wfInfo* cfi, int id, char* param)
{
int rc;
rc = freerdp_set_param_string(cfi->instance->settings, id, param);
wf_on_param_change(cfi, id);
return rc;
}

View File

@ -140,6 +140,19 @@ FREERDP_API int freerdp_client_set_window_size(wfInfo* cfi, int width, int heigh
FREERDP_API cfInfo* freerdp_client_new(int argc, char** argv);
FREERDP_API int freerdp_client_free(wfInfo* cfi);
FREERDP_API BOOL freerdp_client_get_param_bool(wfInfo* cfi, int id);
FREERDP_API int freerdp_client_set_param_bool(wfInfo* cfi, int id, BOOL param);
FREERDP_API UINT32 freerdp_client_get_param_uint32(wfInfo* cfi, int id);
FREERDP_API int freerdp_client_set_param_uint32(wfInfo* cfi, int id, UINT32 param);
FREERDP_API UINT64 freerdp_client_get_param_uint64(wfInfo* cfi, int id);
FREERDP_API int freerdp_client_set_param_uint64(wfInfo* cfi, int id, UINT64 param);
FREERDP_API char* freerdp_client_get_param_string(wfInfo* cfi, int id);
FREERDP_API int freerdp_client_set_param_string(wfInfo* cfi, int id, char* param);
#ifdef __cplusplus
}
#endif

View File

@ -513,6 +513,10 @@ BOOL freerdp_get_param_bool(rdpSettings* settings, int id)
return settings->Decorations;
break;
case FreeRDP_SmartSizing:
return settings->SmartSizing;
break;
case FreeRDP_MouseMotion:
return settings->MouseMotion;
break;
@ -949,6 +953,10 @@ int freerdp_set_param_bool(rdpSettings* settings, int id, BOOL param)
settings->Decorations = param;
break;
case FreeRDP_SmartSizing:
settings->SmartSizing = param;
break;
case FreeRDP_MouseMotion:
settings->MouseMotion = param;
break;