efl

Форк
0
/
entry_example.c 
582 строки · 17.2 Кб
1
/*
2
 * gcc -o entry_example entry_example.c `pkg-config --cflags --libs elementary`
3
 */
4
#include <Elementary.h>
5

6
typedef struct
7
{
8
   Evas_Object *win;
9
   Evas_Object *edit_buffer;
10
} App_Data;
11

12
typedef struct
13
{
14
   Evas_Object *inwin;
15
   Evas_Object *naviframe;
16
   Evas_Object *grid;
17
   Evas_Object *settings;
18

19
   int size;
20
   int vsize;
21
   int width, height;
22

23
   const char *emo;
24

25
   App_Data *ad;
26
} App_Inwin_Data;
27

28
static void
29
_edit_buffer_insert(Evas_Object *e, const char *text)
30
{
31
   elm_entry_entry_insert(e, text);
32
   elm_object_focus_set(e, EINA_TRUE);
33
}
34

35
static void
36
_it_sel_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event)
37
{
38
   App_Inwin_Data *aid = data;
39
   Elm_Object_Item *gg_it = event;
40

41
   aid->emo = elm_object_item_data_get(gg_it);
42

43
   elm_naviframe_item_simple_promote(aid->naviframe, aid->settings);
44
}
45

46
static char *
47
_emo_label_get(void *data, Evas_Object *obj EINA_UNUSED,
48
               const char *part EINA_UNUSED)
49
{
50
   return strdup(data);
51
}
52

53
static Evas_Object *
54
_emo_content_get(void *data, Evas_Object *obj, const char *part)
55
{
56
   Evas_Object *o;
57

58
   if (strcmp(part, "elm.swallow.icon"))
59
     return NULL;
60
   o = elm_layout_add(obj);
61
   if (!elm_layout_theme_set(o, "entry/emoticon", data, "default"))
62
     {
63
        fprintf(stderr, "Failed to set layout");
64
        return NULL;
65
     }
66
   return o;
67
}
68

69
static void
70
_emo_del(void *data, Evas_Object *obj EINA_UNUSED)
71
{
72
   free(data);
73
}
74

75
static Evas_Object *
76
_page_grid_add(Evas_Object *parent, App_Inwin_Data *aid)
77
{
78
   Evas_Object *grid;
79
   char *theme, *emo;
80
   Eina_List *emos, *it;
81
   static Elm_Gengrid_Item_Class *it_class;
82
   it_class = elm_gengrid_item_class_new();
83
   it_class->item_style = "default";
84
   it_class->func.text_get = _emo_label_get;
85
   it_class->func.content_get = _emo_content_get;
86
   it_class->func.del = _emo_del;
87

88
   theme = elm_theme_list_item_path_get("default", NULL);
89
   if (!theme) return NULL;
90
   emos = edje_file_collection_list(theme);
91
   free(theme);
92
   if (!emos) return NULL;
93

94
   grid = elm_gengrid_add(parent);
95
   elm_gengrid_item_size_set(grid, 64, 80);
96
   evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
97
   evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
98

99
   EINA_LIST_FOREACH(emos, it, emo)
100
     {
101
        char name[512];
102

103
        if (strncmp(emo, "elm/entry/emoticon/", 19))
104
          continue;
105
        sscanf(emo, "elm/entry/emoticon/%[^/]/default", name);
106
        elm_gengrid_item_append(grid, it_class, strdup(name), _it_sel_cb, aid);
107
     }
108
   edje_file_collection_list_free(emos);
109
   elm_gengrid_item_class_free(it_class);
110

111
   return grid;
112
}
113

114
static void
115
_btn_insert_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
116
{
117
   App_Inwin_Data *aid = data;
118
   const char *size[] = {
119
        "size",
120
        "absize",
121
        "relsize"
122
   };
123
   const char *vsize[] = {
124
        "full",
125
        "ascent"
126
   };
127
   char buf[512];
128

129
   snprintf(buf, sizeof(buf), "<item %s=%dx%d vsize=%s href=emoticon/%s>"
130
            "</item>", size[aid->size], aid->width, aid->height,
131
            vsize[aid->vsize], aid->emo);
132
   _edit_buffer_insert(aid->ad->edit_buffer, buf);
133

134
   evas_object_del(aid->inwin);
135
}
136

137
static void
138
_width_changed_cb(void *data, Evas_Object *obj, void *event EINA_UNUSED)
139
{
140
   App_Inwin_Data *aid = data;
141

142
   aid->width = atoi(elm_object_text_get(obj));
143
}
144

145
static void
146
_height_changed_cb(void *data, Evas_Object *obj, void *event EINA_UNUSED)
147
{
148
   App_Inwin_Data *aid = data;
149

150
   aid->height = atoi(elm_object_text_get(obj));
151
}
152

153
static Evas_Object *
154
_page_settings_add(Evas_Object *parent, App_Inwin_Data *aid)
155
{
156
   Evas_Object *box, *sizeopts, *box2, *sizebox, *vsizebox,
157
               *rsize, *rabsize, *rrelsize, *rvfull, *rvascent,
158
               *fwidth, *ewidth, *fheight, *eheight,
159
               *binsert;
160
   char buf[100];
161
   static Elm_Entry_Filter_Accept_Set accept_set = {
162
        .accepted = "0123456789",
163
        .rejected = NULL
164
   };
165
   static Elm_Entry_Filter_Limit_Size limit_size = {
166
        .max_char_count = 5,
167
        .max_byte_count = 0
168
   };
169

170
   box = elm_box_add(parent);
171
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
172
   evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
173

174
   sizeopts = elm_frame_add(parent);
175
   elm_object_text_set(sizeopts, "Size");
176
   evas_object_size_hint_weight_set(sizeopts, EVAS_HINT_EXPAND, 0.0);
177
   evas_object_size_hint_align_set(sizeopts, EVAS_HINT_FILL, EVAS_HINT_FILL);
178
   elm_box_pack_end(box, sizeopts);
179
   evas_object_show(sizeopts);
180

181
   box2 = elm_box_add(parent);
182
   evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
183
   evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL);
184
   elm_object_content_set(sizeopts, box2);
185
   evas_object_show(box2);
186

187
   sizebox = elm_box_add(parent);
188
   elm_box_horizontal_set(sizebox, EINA_TRUE);
189
   evas_object_size_hint_weight_set(sizebox, EVAS_HINT_EXPAND,
190
                                    EVAS_HINT_EXPAND);
191
   evas_object_size_hint_align_set(sizebox, EVAS_HINT_FILL, EVAS_HINT_FILL);
192
   elm_box_pack_end(box2, sizebox);
193
   evas_object_show(sizebox);
194

195
   rsize = elm_radio_add(parent);
196
   elm_object_text_set(rsize, "Scale adjusted (size)");
197
   elm_radio_state_value_set(rsize, 0);
198
   elm_radio_value_pointer_set(rsize, &aid->size);
199
   elm_box_pack_end(sizebox, rsize);
200
   evas_object_show(rsize);
201

202
   rabsize = elm_radio_add(parent);
203
   elm_object_text_set(rabsize, "Absolute size (absize)");
204
   elm_radio_state_value_set(rabsize, 1);
205
   elm_radio_value_pointer_set(rabsize, &aid->size);
206
   elm_radio_group_add(rabsize, rsize);
207
   elm_box_pack_end(sizebox, rabsize);
208
   evas_object_show(rabsize);
209

210
   rrelsize = elm_radio_add(parent);
211
   elm_object_text_set(rrelsize, "Relative to line (relsize)");
212
   elm_radio_state_value_set(rrelsize, 2);
213
   elm_radio_value_pointer_set(rrelsize, &aid->size);
214
   elm_radio_group_add(rrelsize, rsize);
215
   elm_box_pack_end(sizebox, rrelsize);
216
   evas_object_show(rrelsize);
217

218
   vsizebox = elm_box_add(parent);
219
   elm_box_horizontal_set(vsizebox, EINA_TRUE);
220
   evas_object_size_hint_weight_set(vsizebox, EVAS_HINT_EXPAND,
221
                                    EVAS_HINT_EXPAND);
222
   evas_object_size_hint_align_set(vsizebox, EVAS_HINT_FILL, EVAS_HINT_FILL);
223
   elm_box_pack_end(box2, vsizebox);
224
   evas_object_show(vsizebox);
225

226
   rvfull = elm_radio_add(parent);
227
   elm_object_text_set(rvfull, "Full height (vsize=full)");
228
   elm_radio_state_value_set(rvfull, 0);
229
   elm_radio_value_pointer_set(rvfull, &aid->vsize);
230
   elm_box_pack_end(vsizebox, rvfull);
231
   evas_object_show(rvfull);
232

233
   rvascent = elm_radio_add(parent);
234
   elm_object_text_set(rvascent, "Ascent only (vsize=ascent)");
235
   elm_radio_state_value_set(rvascent, 1);
236
   elm_radio_value_pointer_set(rvascent, &aid->vsize);
237
   elm_radio_group_add(rvascent, rvfull);
238
   elm_box_pack_end(vsizebox, rvascent);
239
   evas_object_show(rvascent);
240

241
   fwidth = elm_frame_add(parent);
242
   elm_object_text_set(fwidth, "Width");
243
   evas_object_size_hint_weight_set(fwidth, EVAS_HINT_EXPAND, 0.0);
244
   evas_object_size_hint_align_set(fwidth, EVAS_HINT_FILL, EVAS_HINT_FILL);
245
   elm_box_pack_end(box2, fwidth);
246
   evas_object_show(fwidth);
247

248
   snprintf(buf, sizeof(buf), "%d", aid->width);
249
   ewidth = elm_entry_add(parent);
250
   elm_entry_single_line_set(ewidth, EINA_TRUE);
251
   elm_entry_markup_filter_append(ewidth, elm_entry_filter_accept_set,
252
                                  &accept_set);
253
   elm_entry_markup_filter_append(ewidth, elm_entry_filter_limit_size,
254
                                  &limit_size);
255
   elm_object_text_set(ewidth, buf);
256
   evas_object_size_hint_weight_set(ewidth, EVAS_HINT_EXPAND, 0.0);
257
   evas_object_size_hint_align_set(ewidth, EVAS_HINT_FILL, EVAS_HINT_FILL);
258
   elm_object_content_set(fwidth, ewidth);
259
   evas_object_show(ewidth);
260

261
   evas_object_smart_callback_add(ewidth, "changed", _width_changed_cb, aid);
262

263
   fheight = elm_frame_add(parent);
264
   elm_object_text_set(fheight, "Height");
265
   evas_object_size_hint_weight_set(fheight, EVAS_HINT_EXPAND, 0.0);
266
   evas_object_size_hint_align_set(fheight, EVAS_HINT_FILL, EVAS_HINT_FILL);
267
   elm_box_pack_end(box2, fheight);
268
   evas_object_show(fheight);
269

270
   snprintf(buf, sizeof(buf), "%d", aid->height);
271
   eheight = elm_entry_add(parent);
272
   elm_entry_single_line_set(eheight, EINA_TRUE);
273
   elm_entry_markup_filter_append(eheight, elm_entry_filter_accept_set,
274
                                  &accept_set);
275
   elm_entry_markup_filter_append(eheight, elm_entry_filter_limit_size,
276
                                  &limit_size);
277
   elm_object_text_set(eheight, buf);
278
   evas_object_size_hint_weight_set(eheight, EVAS_HINT_EXPAND, 0.0);
279
   evas_object_size_hint_align_set(eheight, EVAS_HINT_FILL, EVAS_HINT_FILL);
280
   elm_object_content_set(fheight, eheight);
281
   evas_object_show(eheight);
282

283
   evas_object_smart_callback_add(eheight, "changed", _height_changed_cb, aid);
284

285
   binsert = elm_button_add(parent);
286
   elm_object_text_set(binsert, "Insert");
287
   elm_box_pack_end(box, binsert);
288
   evas_object_show(binsert);
289

290
   evas_object_smart_callback_add(binsert, "clicked", _btn_insert_cb, aid);
291

292
   return box;
293
}
294

295
static void
296
_insert_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED,
297
                  void *event EINA_UNUSED)
298
{
299
   App_Inwin_Data *aid = data;
300

301
   evas_object_del(aid->inwin);
302
}
303

304
static void
305
_inwin_del_cb(void *data, Evas *e EINA_UNUSED,
306
              Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
307
{
308
   free(data);
309
}
310

311
static void
312
_image_insert_cb(void *data, Evas_Object *obj EINA_UNUSED,
313
                 void *event EINA_UNUSED)
314
{
315
   App_Data *ad = data;
316
   App_Inwin_Data *aid;
317
   Evas_Object *inwin, *box, *box2, *naviframe, *o;
318

319
   aid = calloc(1, sizeof(App_Inwin_Data));
320
   if (!aid) return;
321

322
   aid->ad = ad;
323
   aid->size = 1;
324
   aid->vsize = 1;
325
   aid->width = 64;
326
   aid->height = 64;
327

328
   inwin = elm_win_inwin_add(ad->win);
329
   evas_object_size_hint_weight_set(inwin, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
330
   evas_object_size_hint_align_set(inwin, EVAS_HINT_FILL, EVAS_HINT_FILL);
331
   evas_object_show(inwin);
332

333
   evas_object_event_callback_add(inwin, EVAS_CALLBACK_DEL, _inwin_del_cb,
334
                                  aid);
335

336
   box = elm_box_add(ad->win);
337
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
338
   evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
339
   elm_win_inwin_content_set(inwin, box);
340
   evas_object_show(box);
341

342
   naviframe = elm_naviframe_add(ad->win);
343
   evas_object_size_hint_weight_set(naviframe, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
344
   evas_object_size_hint_align_set(naviframe, EVAS_HINT_FILL, EVAS_HINT_FILL);
345
   elm_box_pack_end(box, naviframe);
346
   evas_object_show(naviframe);
347

348
   o = _page_grid_add(ad->win, aid);
349
   elm_naviframe_item_simple_push(naviframe, o);
350
   aid->grid = o;
351

352
   o = _page_settings_add(ad->win, aid);
353
   elm_naviframe_item_simple_push(naviframe, o);
354
   aid->settings = o;
355

356
   elm_naviframe_item_simple_promote(naviframe, aid->grid);
357

358
   box2 = elm_box_add(ad->win);
359
   elm_box_horizontal_set(box2, EINA_TRUE);
360
   evas_object_size_hint_weight_set(box2, EVAS_HINT_EXPAND, 0.0);
361
   evas_object_size_hint_align_set(box2, EVAS_HINT_FILL, EVAS_HINT_FILL);
362
   elm_box_pack_end(box, box2);
363
   evas_object_show(box2);
364

365
   o = elm_button_add(ad->win);
366
   elm_object_text_set(o, "Cancel");
367
   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
368
   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
369
   elm_box_pack_end(box2, o);
370
   evas_object_show(o);
371

372
   evas_object_smart_callback_add(o, "clicked", _insert_cancel_cb, aid);
373

374
   aid->inwin = inwin;
375
   aid->naviframe = naviframe;
376
}
377

378
static void
379
_format_change_cb(void *data, Evas_Object *obj, void *event EINA_UNUSED)
380
{
381
   App_Data *ad = data;
382
   char fmt_open[5], fmt_close[6];
383
   const char *sel;
384
   int cursor;
385
   char *s;
386
   const char *ptr, *what;
387
   Eina_Strbuf *buf = NULL;
388

389
   sel = elm_object_text_get(obj);
390
   snprintf(fmt_open, sizeof(fmt_open), "<%s>", sel);
391
   snprintf(fmt_close, sizeof(fmt_close), "</%s>", sel);
392

393
   buf = eina_strbuf_new();
394

395
   cursor = elm_entry_cursor_pos_get(ad->edit_buffer);
396
   elm_entry_cursor_begin_set(ad->edit_buffer);
397
   elm_entry_cursor_selection_begin(ad->edit_buffer);
398
   elm_entry_cursor_pos_set(ad->edit_buffer, cursor);
399
   elm_entry_cursor_selection_end(ad->edit_buffer);
400
   sel = elm_entry_selection_get(ad->edit_buffer);
401
   if (!sel || !sel[0])
402
     {
403
        eina_strbuf_append(buf, fmt_open);
404
        goto all_done;
405
     }
406
   what = fmt_open;
407
   ptr = sel;
408
   while ((s = strstr(ptr, what)))
409
     {
410
        ptr = s + strlen(what);
411
        if (what == fmt_open) what = fmt_close;
412
        else what = fmt_open;
413
     }
414
   eina_strbuf_append(buf, what);
415
   if (what == fmt_close)
416
     {
417
        elm_entry_cursor_selection_begin(ad->edit_buffer);
418
        elm_entry_cursor_end_set(ad->edit_buffer);
419
        elm_entry_cursor_selection_end(ad->edit_buffer);
420
        sel = elm_entry_selection_get(ad->edit_buffer);
421
        if (sel)
422
          {
423
             Eina_Strbuf *buf2 = eina_strbuf_new();
424
             eina_strbuf_append(buf2, sel);
425
             eina_strbuf_replace_first(buf2, fmt_close, "");
426
             elm_entry_entry_insert(ad->edit_buffer,
427
                                    eina_strbuf_string_get(buf2));
428
             eina_strbuf_free(buf2);
429
          }
430
     }
431
   elm_entry_select_none(ad->edit_buffer);
432
   elm_entry_cursor_pos_set(ad->edit_buffer, cursor);
433

434
all_done:
435
   _edit_buffer_insert(ad->edit_buffer, eina_strbuf_string_get(buf));
436
   eina_strbuf_free(buf);
437
}
438

439
static void
440
_autosave_change_cb(void *data, Evas_Object *obj, void *event EINA_UNUSED)
441
{
442
   App_Data *ad = data;
443
   Eina_Bool state = elm_check_state_get(obj);
444

445
   elm_entry_autosave_set(ad->edit_buffer, state);
446
   if (state) elm_entry_file_save(ad->edit_buffer);
447
}
448

449
static void
450
_edit_dblclick_cb(void *data EINA_UNUSED, Evas_Object *obj,
451
                  void *event EINA_UNUSED)
452
{
453
   int current_cursor;
454

455
   current_cursor = elm_entry_cursor_pos_get(obj);
456

457
   while (elm_entry_cursor_prev(obj))
458
     {
459
        const char *content;
460
        if (elm_entry_cursor_is_visible_format_get(obj))
461
          break;
462
        content = elm_entry_cursor_content_get(obj);
463
        if (content && (content[0] == ' '))
464
          break;
465
     }
466

467
   if (current_cursor == elm_entry_cursor_pos_get(obj))
468
     return;
469

470
   elm_entry_cursor_next(obj);
471
   elm_entry_cursor_selection_begin(obj);
472
   elm_entry_cursor_pos_set(obj, current_cursor);
473
   while (elm_entry_cursor_next(obj))
474
     {
475
        const char *content;
476
        if (elm_entry_cursor_is_visible_format_get(obj))
477
          break;
478
        content = elm_entry_cursor_content_get(obj);
479
        if (content && (content[0] == ' '))
480
          break;
481
     }
482
   elm_entry_cursor_selection_end(obj);
483
}
484

485
static void
486
_edit_tplclick_cb(void *data EINA_UNUSED, Evas_Object *obj,
487
                  void *event EINA_UNUSED)
488
{
489
   elm_entry_cursor_line_begin_set(obj);
490
   elm_entry_cursor_selection_begin(obj);
491
   elm_entry_cursor_line_end_set(obj);
492
   elm_entry_cursor_selection_end(obj);
493
}
494

495
EAPI_MAIN int
496
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
497
{
498
   Evas_Object *win, *box, *tb, *en, *o, *icon;
499
   App_Data app;
500

501
   memset(&app, 0, sizeof(app));
502

503
   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
504

505
   win = elm_win_util_standard_add("entry-example", "Emacs Lite");
506
   elm_win_autodel_set(win, EINA_TRUE);
507

508
   box = elm_box_add(win);
509
   evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
510
   elm_win_resize_object_add(win, box);
511
   evas_object_show(box);
512

513
   tb = elm_box_add(win);
514
   elm_box_horizontal_set(tb, EINA_TRUE);
515
   evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, 0.0);
516
   evas_object_size_hint_weight_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
517
   elm_box_pack_end(box, tb);
518
   evas_object_show(tb);
519

520
   o = elm_check_add(win);
521
   elm_check_state_set(o, EINA_FALSE);
522
   elm_object_text_set(o, "Autosave");
523
   elm_box_pack_end(tb, o);
524
   evas_object_show(o);
525

526
   evas_object_smart_callback_add(o, "changed", _autosave_change_cb, &app);
527

528
   o = elm_button_add(win);
529
   elm_object_text_set(o, "b");
530
   elm_box_pack_end(tb, o);
531
   evas_object_show(o);
532

533
   evas_object_smart_callback_add(o, "clicked", _format_change_cb, &app);
534

535
   o = elm_button_add(win);
536
   elm_object_text_set(o, "em");
537
   elm_box_pack_end(tb, o);
538
   evas_object_show(o);
539

540
   evas_object_smart_callback_add(o, "clicked", _format_change_cb, &app);
541

542
   o = elm_button_add(win);
543
   elm_box_pack_end(tb, o);
544
   evas_object_show(o);
545

546
   icon = elm_layout_add(win);
547

548
   if (!elm_layout_theme_set(
549
         icon, "entry", "emoticon/haha", "default"))
550
     fprintf(stderr, "Failed to set layout");
551

552
   elm_object_part_content_set(o, "icon", icon);
553

554
   evas_object_smart_callback_add(o, "clicked", _image_insert_cb, &app);
555

556
   en = elm_entry_add(win);
557
   elm_entry_autosave_set(en, EINA_FALSE);
558
   elm_entry_file_set(en, "/tmp/da_test.txt", ELM_TEXT_FORMAT_MARKUP_UTF8);
559
   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
560
   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
561
   elm_box_pack_end(box, en);
562
   evas_object_show(en);
563

564
   app.win = win;
565
   app.edit_buffer = en;
566

567
   evas_object_smart_callback_add(en, "clicked,double", _edit_dblclick_cb,
568
                                  NULL);
569
   evas_object_smart_callback_add(en, "clicked,triple", _edit_tplclick_cb,
570
                                  NULL);
571

572
   elm_object_focus_set(app.edit_buffer, EINA_TRUE);
573

574
   evas_object_resize(win, 300, 780);
575

576
   evas_object_show(win);
577

578
   elm_run();
579

580
   return 0;
581
}
582
ELM_MAIN()
583

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.