MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / createTopBar

Method createTopBar

Telegram/SourceFiles/info/info_wrap_widget.cpp:357–417  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

355}
356
357void WrapWidget::createTopBar() {
358 const auto wrapValue = wrap();
359 auto selectedItems = _topBar
360 ? _topBar->takeSelectedItems()
361 : SelectedItems(Section::MediaType::kCount);
362 _topBar.create(
363 this,
364 _controller.get(),
365 TopBarStyle(wrapValue),
366 std::move(selectedItems));
367 _topBar->selectionActionRequests(
368 ) | rpl::on_next([=](SelectionAction action) {
369 _content->selectionAction(action);
370 }, _topBar->lifetime());
371
372 if (hasBackButton()) {
373 _topBar->enableBackButton();
374 _topBar->backRequest(
375 ) | rpl::on_next([=] {
376 checkBeforeClose([=] { _controller->showBackFromStack(); });
377 }, _topBar->lifetime());
378 } else if (wrapValue == Wrap::Side) {
379 auto close = _topBar->addButton(
380 base::make_unique_q<Ui::IconButton>(
381 _topBar,
382 st::infoTopBarClose));
383 close->setAccessibleName(tr::lng_sr_close_panel(tr::now));
384 close->addClickHandler([this] {
385 _controller->parentController()->closeThirdSection();
386 });
387 }
388 _topBar->storyClicks() | rpl::on_next([=] {
389 if (const auto peer = _controller->key().peer()) {
390 _controller->parentController()->openPeerStories(peer->id);
391 }
392 }, _topBar->lifetime());
393 if (wrapValue == Wrap::Layer) {
394 auto close = _topBar->addButton(
395 base::make_unique_q<Ui::IconButton>(
396 _topBar,
397 st::infoLayerTopBarClose));
398 close->setAccessibleName(tr::lng_sr_close_panel(tr::now));
399 close->addClickHandler([this] {
400 checkBeforeClose([=] {
401 _controller->parentController()->hideSpecialLayer();
402 });
403 });
404 } else if (requireTopBarSearch()) {
405 auto search = _controller->searchFieldController();
406 Assert(search != nullptr);
407 setupShortcuts();
408 _topBar->createSearchView(
409 search,
410 _controller->searchEnabledByContent(),
411 _controller->takeSearchStartsFocused());
412 }
413 _topBar->lower();
414 _topBar->resizeToWidth(width());

Callers

nothing calls this directly

Calls 15

takeSelectedItemsMethod · 0.80
closeThirdSectionMethod · 0.80
storyClicksMethod · 0.80
openPeerStoriesMethod · 0.80
hideSpecialLayerMethod · 0.80
searchFieldControllerMethod · 0.80
createSearchViewMethod · 0.80
SelectedItemsClass · 0.70
createMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected